您还可以使用 java.nio.file.Path 轻松完成此 *** 作。该 java.nio.file.Path.startsWith
方法似乎是处理所有可能的情况。
例:
private static void isChild(Path child, String parentText) { Path parent = Paths.get(parentText).toAbsolutePath(); System.out.println(parentText + " = " + child.startsWith(parent));}public static void main(String[] args) { Path child = Paths.get("/FolderA/FolderB/File").toAbsolutePath(); isChild(child, "/FolderA/FolderB/File"); isChild(child, "/FolderA/FolderB/F"); isChild(child, "/FolderA/FolderB"); isChild(child, "/FolderA/Folder"); isChild(child, "/FolderA"); isChild(child, "/Folder"); isChild(child, "/"); isChild(child, "");}
输出
/FolderA/FolderB/File = true/FolderA/FolderB/F = false/FolderA/FolderB = true/FolderA/Folder = false/FolderA = true/Folder = false/ = true = false
如果需要更高的可靠性,可以使用“ toRealPath”代替“ toAbsolutePath”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)