我想检查现有文件是否位于特定目录或该目录的子目录中。
我有两个 File 对象。
File dir;
File file;
两者都保证存在。让我们假设
dir = /tmp/dir
file = /tmp/dir/subdir1/subdir2/file.txt
我希望此检查返回 true
现在我正在这样做检查:
String canonicalDir = dir.getCanonicalPath() + File.separator;
boolean subdir = file.getCanonicalPath().startsWith(canonicalDir);
这似乎适用于我有限的测试,但我不确定这是否会在某些操作系统上造成问题。我也不喜欢 getCanonicalPath() 会抛出我必须处理的 IOException。
有没有更好的办法?可能在某个图书馆?
谢谢