< prev index next >
src/java.base/windows/classes/java/io/WinNTFileSystem.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 23,32 ****
--- 23,34 ----
* questions.
*/
package java.io;
+ import java.io.File;
+ import java.nio.file.Path;
import java.util.Locale;
import java.util.Properties;
import sun.security.action.GetPropertyAction;
/**
*** 625,634 ****
--- 627,657 ----
private native long getSpace0(File f, int t);
/* -- Basic infrastructure -- */
+ // Obtain maximum file component length from GetVolumeInformation which
+ // expects the path to be null or a root component ending in a backslash
+ private native long getNameMax0(String path);
+
+ public long getNameMax(String path) {
+ String s = null;
+ if (path != null) {
+ File f = new File(path);
+ if (f.isAbsolute()) {
+ Path root = f.toPath().getRoot();
+ if (root != null) {
+ s = root.toString();
+ if (!s.endsWith("\\")) {
+ s = s + "\\";
+ }
+ }
+ }
+ }
+ return getNameMax0(s);
+ }
+
@Override
public int compare(File f1, File f2) {
return f1.getPath().compareToIgnoreCase(f2.getPath());
}
< prev index next >