当前位置: 首页 > 面试题库 >

如何检查给定路径是否可能是其他路径的子代?

秦德海
2023-03-14
问题内容

我试图找到给定的路径是否可能是使用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”。



 类似资料:
  • 有没有可能通过JSONPath知道其他“路径”的存在? 我所说的现有“路径”是指类似于此JSON的“a.b.c”或“a.b.d”形式的字符串: 可以写一个JSONPath来判断除了a. b. c和a. b. d之外是否还有其他“路径”吗? 例如,在下面的JSON中,它应该发现有属性'e':

  • 我想检查一个链接的href是否是网站路径之后的文件。代码如下: 有没有办法让它检查在“http://127.0.0.1:5500”后面是“/”还是“/index.html”?谢谢你!

  • 我想检查路径是文件还是目录。如果是目录,那么将目录和文件分别记录下来。稍后我想将它们作为json对象发送。 nodejs binding.lstat(PathModule._Makelong(路径)) 更新:找到解决方案。我必须这样添加testFolder+文件:

  • 问题内容: Golang文件路径模块(https://golang.org/pkg/path/filepath/)包含一些用于处理路径的函数,可用于检查文件是否存在。有没有一种方法可以检查字符串是否真的构成了有效路径(无论该路径处是否有文件)? 问题答案: 这个问题听起来很简单,但实际上并非如此。这是我发现的两个可能的解决方案: 这里的想法是根据规则检查给定的文件路径。 问题 作业系统(UNIX

  • 给定两个字符串 - 一个表示目录路径,另一个表示文件路径 - 检查文件是否存在于给定目录下(可以是任何级别)的最有效方法是什么。 我首先将两者转换为 对象,并比较它们的规范路径 但我不相信这实际上是最准确的方法——我想依靠系统的考虑,而不是比较字符串。 然后,我尝试将两者都转换为对象,然后递归地调用文件上的

  • 问题内容: 在Android中,我有一个Path对象,我碰巧知道它定义了一条闭合路径,因此我需要弄清楚路径中是否包含给定点。我所希望的是一些类似的东西 但这似乎并不存在。 我要这样做的特定原因是因为我在屏幕上有一组形状定义为路径,并且我想弄清楚用户单击了哪个形状。如果有更好的方法来解决这一问题,例如使用不同的UI元素,而不是自己“艰难地”进行操作,我愿意提出建议。 如果需要的话,我愿意自己编写算法