当前位置: 代码迷 >> 综合 >> 文件遍历(listFiles())
  详细解决方案

文件遍历(listFiles())

热度:38   发布时间:2023-11-27 04:27:58.0

方式一:
public static void main(String[] args) {
//获取文件列表
File file=new File("E:\\tmp");
if (!file.exists()) {
System.out.println("该目录不存在");
return;
}
File[] files=file.listFiles();
//遍历文件列表(判断当前File对象是文件还是目录)
getFiles(files);
}

public static void getFiles(File[] files) {
for(File f:files) {
if (f.isFile()) { //是文件
System.out.println(f.getAbsolutePath());
} else if(f.isDirectory()){ //如果是目录
               //递归
System.out.println(f.getAbsolutePath());
File[] dFiles=f.listFiles();
getFiles(dFiles);
}
}
}

//方式二:使用Files工具类
try {
Files.walkFileTree(Paths.get("E:", "tmp"), new SimpleFileVisitor<Path>() { @Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { //打印文件路径
System.out.println("文件:"+file);
return FileVisitResult.CONTINUE; } @Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { //打印目录路径
System.out.println("目录:"+dir);
return FileVisitResult.CONTINUE; }
});
} catch (IOException e) { e.printStackTrace(); }