gpt4 book ai didi

java - 如何检查给定路径是否可能是另一条路径的子路径?

转载 作者:IT老高 更新时间:2023-10-28 20:43:36 25 4
gpt4 key购买 nike

我正在尝试查找给定路径是否可能是使用 java 的另一个路径的子路径。两条路径可能都不存在。

c:\Program Files\My Company\test\My App 可能是 c:\Program Files 的子级。

目前我正在使用

boolean myCheck(File maybeChild, File possibleParent)
{
return maybeChild.getAbsolutePath().startsWith( possibleParent.getAbsolutePath());
}

最佳答案

您还可以使用 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

关于java - 如何检查给定路径是否可能是另一条路径的子路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4746671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com