JavaIO实现文件目录下的文件查找
这是一个使用 java.io 包来遍历目录文件的例子。
其实就是 java.io 包的简单使用。主要有三个例子,
一个是遍历所有文件
一个是获取包含指定关键字或后缀名的文件
一个是获取指定关键和后缀名名的文件
三个例子的主要步骤都是一样,具体如下:
1. 根据目录路径 String 构建目录 File
2. 使用目录 File 的 list() 方法获取目录下所有文件和目录的名字数组 String[]
3. 根据名字 String 和目录 File,构建对应 File
4. 使用 File 的 isDirectory() 判断是否是目录,是则递归,不是则打印。
第一个例子,遍历目录下所有文件
1 public static void listDir(File dir){ 2 //System.out.println(dir.toString()); 3 if(dir.isDirectory()){ 4 String[] subFile = dir.list(); 5 for(String temp : subFile){ 6 File tempF = new File(dir, temp); 7 if(tempF.isDirectory()) 8 listDir(tempF); 9 else { 10 System.out.println("==>" + tempF); 11 } 12 } 13 } 14 }
测试结果如下:

第二个例子,遍历特定包含特定文件名或者后缀
1 public static void listDir(File dir, String keyWordsOrSuffix){ 2 //System.out.println(dir.toString()); 3 if(dir.isDirectory()){ 4 String[] subFile = dir.list(); 5 for(String temp : subFile){ 6 File tempF = new File(dir, temp); 7 if(tempF.isDirectory()) 8 listDir(tempF, keyWordsOrSuffix); 9 else { 10 if(isTarget(temp, keyWordsOrSuffix)){ 11 System.out.println("==>" + tempF); 12 } 13 } 14 } 15 } 16 } 17 18 private static boolean isTarget(String key, String keyWords){ 19 //System.out.println(key); 20 if(keyWords.indexOf(".") != -1){ 21 // 判断文件后缀是否一样 22 if(key.endsWith(keyWords)){ 23 return true; 24 } 25 }else{ 26 // 判断文件名是否包含 27 if(key.contains(keyWords)){ 28 return true; 29 } 30 } 31 return false; 32 }
测试结果如下所示(只显示.jpg文件)

第三个例子,获取包含特定名字和后缀的文件啊
1 public static void listDir(File dir, String contain, String subffix){ 2 //System.out.println(dir.toString()); 3 if(dir.isDirectory()){ 4 String[] subFile = dir.list(); 5 for(String temp : subFile){ 6 File tempF = new File(dir, temp); 7 if(tempF.isDirectory()) 8 listDir(tempF, contain, subffix); 9 else { 10 if(temp.contains(contain) && temp.endsWith(subffix)){ 11 System.out.println("==>" + tempF); 12 } 13 } 14 } 15 } 16 }
测试结果如下


浙公网安备 33010602011771号