Java:检查路径是否是文件的父级

标签 java path filepath

<分区>

我似乎找不到解决方案。

我有两条路,比如:

D:/Views/me/a.bD:/Views/me/a

D:/Views/me/a.bD:/Views/me/a.b/x/y

我必须确保一个文件/目录不是另一个文件/目录的子目录。 我试过 Contains 但在这种情况下它对我不起作用?

最佳答案

我认为PathPaths from java.nio.file 在这里很有用(如果你至少有 Java 7)。

public static void main(String[] args) {
    Path p1 = Paths.get("D:/Views/me/a.b");
    Path p2 = Paths.get("D:/Views/me/a");
    System.out.println(isChild(p1, p2));
    System.out.println(isChild(p2, p1));

    Path p3 = Paths.get("D:/Views/me/a.b");
    Path p4 = Paths.get("D:/Views/me/a.b/x/y");
    System.out.println(isChild(p3, p4));
    System.out.println(isChild(p4, p3));
}

//Check if childCandidate is child of path
public static boolean isChild(Path path, Path childCandidate) {
    return childCandidate.startsWith(path);
}

您可以根据需要考虑在检查之前在路径上使用 toAbsolutePath() 或 toRealPath()。

这是 Path Operations 的官方 Java 教程.

关于Java:检查路径是否是文件的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28698125/

相关文章:

java - JanusGraph 添加边缘似乎不起作用

java - 当没有与键关联的对象时应该抛出什么异常?

java - JAXB HashMap 不可映射

c++ - 在 mac 上编译 hello world wxWidget 程序时找不到 'wx/wx.h' 文件

linux - 将 OpenGL 安装到目录

java - Java排序,字符串比较

java - wicket:根据请求将不同的路径映射到同一类以在标记中生成不同的内容

linux - .bashrc 中究竟在哪里设置 PATH?

ios - 在应用程序扩展的共享容器中找不到文件

java - 如何使用文件路径从存储中删除文件?