带有java.nio.file*的目录和文件扫描程序;
如何在java.io.File中实现相同的功能带有java.nio.file*的目录和文件扫描程序;,java,path,nio,Java,Path,Nio,如何在java.io.File中实现相同的功能 List<File> List = (List<File>) FileUtils.listFilesAndDirs(directory, TrueFileFilter.TRUE, TrueFileFilter.TRUE); String fileID = f.getAbsolutePath().replaceAll(staticRoot, "");
List<File> List = (List<File>) FileUtils.listFilesAndDirs(directory,
TrueFileFilter.TRUE, TrueFileFilter.TRUE);
String fileID = f.getAbsolutePath().replaceAll(staticRoot, "");
staticRoot=/home/test/dir1/dir10/test9.txt由于
FileUtils.listFilesAndDirs(directory,TrueFileFilter.TRUE,TrueFileFilter.TRUE)
将递归访问目录中的所有子目录,因此结果应剪切“/home/test/”,并仅返回dir1/dir10/test9.txt
通过遍历以给定起始文件为根的文件树,返回以路径惰性填充的流。文件树是以深度优先的方式遍历的,流中的元素是路径对象,这些对象是通过解析相对于开始的相对路径而获得的
给定一个表示/home/test/dir1/dir10/test9.txt
的j.n.f.Path对象,调用.getParent()
以获取表示dir10的内容。然后,如果您有一个表示/home/test/dir1/dir10/subdir1/subdir2/foo.txt的路径,并且希望将其转换为subdir1/subdir2/foo.txt
,则可以使用j.f.path的relatize
方法来执行此操作。不需要更换,也不需要全部更换
注意:你用错了。replaceAll将正则表达式作为第一个参数,将替换作为第二个参数,并替换对该正则表达式的所有点击。replace方法将字符串作为参数,将replace作为第二个参数,然后。。也取代了所有。假设您的staticRoot不是regexp,那么您使用了错误的调用。只是下一次的教训。是的,名字令人困惑
DirectoryStream<Path> List = Files.newDirectoryStream(Paths.get(directory));
String fileID = f.???
String fileID = f.toAbsolutePath().toString().replaceAll(staticRoot, "");
for (Path f : fList) {
String fileID = f.toAbsolutePath().toString().replaceAll(staticRoot, "");
System.out.println("file ID : " + fileID);
String parentID = null;
}