Java7遍历文件夹

Java遍历文件夹的方法有多种,之前我写了一种遍历文件夹的方法点击,使用File类的方法递归遍历,这次是使用Java7提供的新的方法遍历文件夹。

File提供两个方法遍历文件夹,

上面两个方法都需要FileVisitor参数,FileVisitor代表一个文件访问器,walkFileTree()方法会自动遍历start路径下的所有文件和子目录,遍历文件和子目录都会触发FileVisitor中相应的方法。这四个方法在下面的代码中出现。

FileVisitor中的四个方法会返回一个FileVisitorResult,它代是一个枚举类,代表访问之后的行为。

FileVisitor定义了如下几种行为:

CONTINUE:代表访问之后的继续行为

SKIP_SIBLINGS:代表继续访问,但不访问该文件或目录的兄弟文件或目录

SKIP_SUBTREE:继续访问,但不访问该目录或文件的子目录

TERMINATE:终止访问

  1. import java.io.IOException;
  2. import java.nio.ByteBuffer;
  3. import java.nio.CharBuffer;
  4. import java.nio.charset.Charset;
  5. import java.nio.charset.CharsetDecoder;
  6. import java.nio.charset.CharsetEncoder;
  7. import java.nio.file.FileVisitResult;
  8. import java.nio.file.FileVisitor;
  9. import java.nio.file.Files;
  10. import java.nio.file.Paths;
  11. import java.nio.file.attribute.BasicFileAttributes;
  12. public class Test {
  13. public static void main(String[] args) throws Exception
  14. {
  15. Files.walkFileTree(Paths.get("D:","linux"), new FileVisitor(){
  16. @Override
  17. public FileVisitResult preVisitDirectory(Object dir,
  18. BasicFileAttributes attrs) throws IOException {
  19. //访问文件夹之前调用
  20. System.out.println(dir);
  21. return FileVisitResult.CONTINUE;
  22. }
  23. @Override
  24. public FileVisitResult visitFile(Object file,
  25. BasicFileAttributes attrs) throws IOException {
  26. // 访问文件调用
  27. System.out.println(file);
  28. return FileVisitResult.CONTINUE;
  29. }
  30. @Override
  31. public FileVisitResult visitFileFailed(Object file, IOException exc)
  32. throws IOException {
  33. // 访问文件失败时调用
  34. return FileVisitResult.CONTINUE;
  35. }
  36. @Override
  37. public FileVisitResult postVisitDirectory(Object dir,
  38. IOException exc) throws IOException {
  39. // 访问文件夹之后调用
  40. return FileVisitResult.CONTINUE;
  41. }
  42. });
  43. }
  44. }

这样就可以遍历一个路径下的所有文件和文件夹。

版权声明:本文为博主http://www.zuiniusn.com原创文章,未经博主允许不得转载。

时间: 2024-08-30 11:19:36

Java7遍历文件夹的相关文章

OpenCV实现遍历文件夹下所有文件

OpenCV中有实现遍历文件夹下所有文件的类Directory,它里面包括3个成员函数:(1).GetListFiles:遍历指定文件夹下的所有文件,不包括指定文件夹内的文件夹:(2).GetListFolders:遍历指定文件夹下的所有文件夹,不包括指定文件夹下的文件:(3).GetListFilesR:遍历指定文件夹下的所有文件,包括指定文件夹内的文件夹. 若要使用Directory类,则需包含contrib.hpp头文件,此类的实现在contrib模块. 下面为测试代码: cv::Dire

递归的一些应用(一)遍历文件夹

函数的递归调用 递归的含义 递归其实也只是一种算法上的描述,不是一种新的语法! 有时候,我们解决问题的时候,会遇到这种情况,当我们把一个大的问题按照某种解决方案分成若干个小的问题的时候,发现这些小问题的解决方案其实和刚才大问题的解决方案又是一样的! 典型的,比如:求阶乘! 10! = 10 * 9! 9! =  9 * 8! 8! = 8 * 7! …… 语法上,函数的递归调用,就是函数在执行的过程中自己又调用自己! 递归的两个要点: 1,  递归的出口:就是指什么时候停止递归调用 2,  递归

Android开发手记(21) 遍历文件夹

我们在遍历文件夹的时候由于涉及到SD卡相关操作,所以我们需要添加如下权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 首先,需要检查SD卡挂载状态: boolean sdCard

Java遍历文件夹下所有文件并替换指定字符串

应用场景:比如有一个深层次的文件目录结构,如:javaAPI 每个文件里面都有相同的内容,而我们要统一修改为其他内容.上千个文件如果一个个修改显得太不明智. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.PrintWriter; public class Test { /** *

Linux下的C程序,遍历文件夹并统计其中各个类型文件所占百分比

递归遍历一个目录下的所有文件和文件夹,统计各个类型文件所占的百分比 程序代码a.cpp(编译命令:g++ a.cpp -o a) #include <stdio.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <dirent.h> #include <string.h> stru

php高效遍历文件夹、高效读取文件

/** * PHP高效遍历文件夹 * @param string $path 目录路径 * @param integer $level 目录深度 */ function fn_scandir($path = './', $level = 0) { $file = new FilesystemIterator($path); $filename = ''; $prefix = ''; $url = ''; foreach ($file as $fileinfo) { $filename = $fi

nodejs:遍历文件夹文件统计文件大小

根据 http://blog.csdn.net/hero82748274/article/details/45700465这里的思路对读写文件做了一个 封装: webpack在打包的时候可以借助assets-webpack-plugin插件形成全部打包文件的json map,不过因为项目需要这个生成的json不能满足我的需要,我们目前需要生成形式为以下的json文件: {"jsFile":{ "mainSite":"mainSite.js", &

PHP封装一个遍历文件夹下面得所有的文件

//遍历文件夹下面所有的文件 function my_scandir($dir) { $files = array(); if ($handle = opendir($dir)){ while (($files = readdir($handle)) !== false){ if ($files != "." && $files != "."){ $files[$files] = my_scandir($dir . "/" . $

C#遍历文件夹(包括子目录)下的所有文件

前提现在一个分区下建立bb.txt文件. 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 using System.IO; 10 11 name