【问题标题】:Java - is one file path part of another?Java - 一个文件路径是另一个文件路径的一部分吗?
【发布时间】:2011-10-21 10:28:35
【问题描述】:

我想知道是否有一种快速简单的方法来检查文件路径是否位于另一个路径下。例如,给定 C:\Fruit\Apple\Core,我想针对包含 C:\Fruit\Apple 的文件列表对其进行测试,并能够判断它是否包含在该路径中。

刚写下这个问题,我就想到我可以简单地将较长文件的子字符串与当前文件进行比较。

所以我现在想知道的是,有什么方法可以使用 File 对象来做到这一点?还是更容易获取每个路径的字符串版本并如上所述进行比较。 (我还在用 java 1.6 所以不能用 java.nio.Path;)

【问题讨论】:

    标签: java file


    【解决方案1】:

    string1.startsWith(string2) 还是最简单的。

    【讨论】:

    • 确实,为什么要把一个简单的问题搞得这么难!谢谢
    • :) 请确保目录以斜线结尾,否则您也会匹配到 C:\Fruit\AppleJuice
    • 如果存在符号链接并且您希望将它们考虑在内,这可能是个问题。但我猜从接受度来看这不是问题。
    • 这会(因此会)中断。反例:/usr/someuser/apple/usr/someuser/applejuice/。或者,如果您愿意,对于 Windows:C:\Users\SomeUser\AppleC:\Users\SomeUser\AppleJuice。如果Apple是一个不带扩展名的文件名(在Unix情况下很常见,在Windows情况下可能),那么你不能简单地在末尾添加路径分隔符来解决问题。
    • @MerlynMorgan-Graham:你误会了:我建议在 shorter 文件中添加斜杠。 /usr/someuser/apple/ 将匹配 /usr/someuser/apple/juice,但不匹配 /usr/someuser/applejuice
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 2021-01-17
    • 1970-01-01
    相关资源
    最近更新 更多