确定目录是否包含文件

jav*_*vaj 3 java

我有java.io.File对象A和B,其中A代表一个目录,B代表一个文件.B可以是绝对路径或低于A的0或更多级别的相对路径.确定B是否包含B的最有效方法是什么?

例如,

A是C:\ Users\bill\Desktop\abc\xyz123,B是C:\ Users\bob\Documents\inc\data.inc

要么

A是C:\ Users\bill\Desktop\abc\xyz123,B是C:\ Users\bob\Documents\x1\y1\inc\data.inc

要么

A是C:\ Users\bill\Desktop\abc\xyz123,B是..\..\..\Documents\inc\data.inc

Chr*_*ynn 13

您可以通过检查来查看A是否是B的父级

A.equals(B.getParentFile())
Run Code Online (Sandbox Code Playgroud)

编辑:如果你想检查B是否是A之下的一个或多个级别,只需继续获取ParentFile,直到它为A或null

File C = B.getParentFile();

while(C != null) {
    if(A.equals(C))
        return true;

    C = C.getParentFile();
}

return false;
Run Code Online (Sandbox Code Playgroud)