< prev index next >
src/java.base/windows/classes/sun/nio/fs/WindowsPath.java
Print this page
@@ -241,17 +241,17 @@
// Drive relative path ("C:foo" for example).
if (isSameDrive(root, getFileSystem().defaultRoot())) {
// relative to default directory
String remaining = path.substring(root.length());
String defaultDirectory = getFileSystem().defaultDirectory();
- String result;
- if (defaultDirectory.endsWith("\\")) {
- result = defaultDirectory + remaining;
+ if (remaining.length() == 0) {
+ return defaultDirectory;
+ } else if (defaultDirectory.endsWith("\\")) {
+ return defaultDirectory + remaining;
} else {
- result = defaultDirectory + "\\" + remaining;
+ return defaultDirectory + "\\" + remaining;
}
- return result;
} else {
// relative to some other drive
String wd;
try {
int dt = GetDriveType(root + "\\");
@@ -410,14 +410,16 @@
for (int j=i; j<bn; j++) {
result.append("..\\");
}
// append remaining names in child
+ if (!other.isEmpty()) {
for (int j=i; j<cn; j++) {
result.append(other.getName(j).toString());
result.append("\\");
}
+ }
// drop trailing slash in result
result.setLength(result.length()-1);
return createFromNormalizedPath(getFileSystem(), result.toString());
}
< prev index next >