给定以下目录结构:
/dir1
/dir1/dir2
/dir1/dir2/file1
/dir1/dir2/file2
/dir1/dir2/dirA/file3
someFunction(“ dir2”)
所需的输出:
dir2/file1
dir2/file2
dir2/dirA/file3
我正在使用FileUtils.listFiles和Paths,然后使用String操作,但是想知道是否有更好的方法。只是似乎令人费解。
Unix命令find dir2很合适。
您有一个基本目录和一个目录Collection<File>
。您可以Path.relativize
用来获取从一个到另一个的相对路径。
给定/dir1
和的示例/dir1/foo/bar/baz
将导致foo/bar/baz
没有任何易碎的字符串操作:
import java.io.*;
import java.nio.file.*;
class Foo {
public static void main(String[] args) throws Exception {
Path base = Paths.get("/dir1");
File f = new File("/dir1/foo/bar/baz");
System.out.println(base.relativize(f.toPath()));
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句