筛选指定文件夹下的特定类型目录

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.FileOutputStream;
 4 import java.io.InputStream;
 5 import java.util.ArrayList;
 6 import java.util.Iterator;
 7 import java.util.List;
 8
 9 public class FileUtils {
10
11     /*public static void main(String[ ] args){
12          String dirName="D:\\often";
13          List fileTypes=new ArrayList();
14          fileTypes.add("doc");
15          Iterator iterator= getAllFilePathByDir_FilterByFileType(dirName, fileTypes).iterator();
16          while(iterator.hasNext()){
17                 System.out.println(iterator.next());
18          }
19
20      }*/
21
22             public static List<String> getAllFilePathByDir_FilterByFileType(String dirName,List<String> fileTypes){
23                  String localClassFilePath = FileUtils.class.getResource("/").getPath();
24                  //System.out.println(localClassFilePath);
25                  String contextFilePath = localClassFilePath.substring(1, localClassFilePath.length()-16);
26                  contextFilePath = contextFilePath.replace("/", "\\");
27                  //System.out.println(contextFilePath);
28                  List<String> filePathList = new ArrayList<String>();
29                  for (int index = 0; index < fileTypes.size(); index++) {
30                     fileList = new ArrayList<String>();
31                     List arrayList = FileUtils.getListFiles(dirName, fileTypes.get(index), true);
32                     if (arrayList.isEmpty()) {
33                         System.out.println("没有符号要求的文件");
34                     }else{
35                         String message = "";
36                         message += "符号要求的文件数:" + arrayList.size();
37                         System.out.println(message);
38                         for (Iterator i = arrayList.iterator(); i.hasNext();) {
39                             String temp = (String) i.next();
40                            temp = temp.replace(contextFilePath, "");//把根路径去掉
41                             System.out.println(temp);
42                             filePathList.add(temp);
43                             message += temp + "/r/n";
44                         }
45                     }
46                 }
47                 for (int replaceIndex = 0; replaceIndex < filePathList.size(); replaceIndex++) {
48                     filePathList.set(replaceIndex, filePathList.get(replaceIndex).replace("\\", "/"));
49                 }
50                 return filePathList;
51             }
52              public static List<String> fileList = new ArrayList<String>();
53
54             /**
55              * @param path
56              *            文件路径
57              * @param suffix
58              *            后缀名
59              * @param isdepth
60              *            是否遍历子目录
61              * @return
62              */
63             public static List getListFiles(String path, String suffix, boolean isdepth) {
64                 File file = new File(path);
65                 return FileUtils.listFile(file, suffix, isdepth);
66             }
67
68             public static List listFile(File f, String suffix, boolean isdepth) {
69                 // 是目录,同时需要遍历子目录
70                 if (f.isDirectory() && isdepth == true) {
71                     File[] t = f.listFiles();
72                     for (int i = 0; i < t.length; i++) {  listFile(t[i], suffix, isdepth);   }
73                 } else {
74                     String filePath = f.getAbsolutePath();
75                     if (suffix != null) {
76                         int begIndex = filePath.lastIndexOf(".");// 最后一个.(即后缀名前面的.)的索引
77                         String tempsuffix = "";
78                         // 防止是文件但却没有后缀名结束的文件
79                         if (begIndex != -1){  tempsuffix = filePath.substring(begIndex + 1, filePath.length()); }
80                         if (tempsuffix.equals(suffix)) {  fileList.add(filePath); }
81                     } else {   // 后缀名为null则为所有文件
82                            fileList.add(filePath);
83                     }
84               }
85                 return fileList;
86             }
87 }

"dirName"位要筛选的文件路径,fileTypes集合里面添加要获得的类型,可以同时筛选多个类型,例如筛选出“java”和“class”类型,只需要将这两个元素添加到集合中去

时间: 2024-08-15 20:16:06

筛选指定文件夹下的特定类型目录的相关文章

win7基础 cmd del+*.扩展名 删除指定文件夹下的同一类型的所有文件

系统      :Windows7注意事项  :博文内容仅供参考,不可用于其他用途. 初始状态下,原文件夹内的所有文件 cmd 窗口下的指令输入 结果展示, ------------------------------------------如果您觉得博文内容有可以优化的地方,请留下评论,我会认真思考的.

Python扫描指定文件夹下(包含子文件夹)的文件

扫描指定文件夹下的文件.或者匹配指定后缀和前缀的函数. 假设要扫描指定文件夹下的文件,包含子文件夹,调用scan_files("/export/home/test/") 假设要扫描指定文件夹下的特定后缀的文件(比方jar包),包含子文件夹,调用scan_files("/export/home/test/", postfix=".jar") 假设要扫描指定文件夹下的特定前缀的文件(比方test_xxx.py).包含子文件夹,调用scan_files

Python批量删除指定文件夹下的指定类型的文件

Python作为一种脚本语言,其非常适合文件级的各种操作.下面的代码可以批量删除指定文件夹下的全部特定类型(CSV类型)的文件. import sys, csv , operator import os import glob for i in range(0, 20): path = "C:\\Python34\\Folder_" + str(i) for infile in glob.glob( os.path.join(path, '*.csv') ): os.remove(in

遍历指定文件夹下的所有文件

1 /// <summary> 2 /// 遍历指定文件夹下的文件 3 /// </summary> 4 /// <param name="dirPath">指定的目录</param> 5 public static void FindFile(string dirPath) 6 { 7 //在指定目录及子目录下查找文件 8 DirectoryInfo Dir = new DirectoryInfo(dirPath); 9 try 10

使用JFileChooser实现在指定文件夹下批量添加根据“数字型样式”或“非数字型样式”命令的文件夹

2018-11-05 20:57:00开始写 Folder.java类 1 import javax.swing.JFrame; 2 import javax.swing.JPanel; 3 import javax.swing.border.EmptyBorder; 4 import javax.swing.JLabel; 5 import javax.swing.JOptionPane; 6 7 import java.awt.Font; 8 import javax.swing.JText

python删除指定文件夹下文件和文件夹的方法

前记 ? python删除指定文件夹下的文件,是一个常用的功能.我找了不少地方,一直没有找到合适的模版,那只好自己倒腾一个比较实用的模版了. 基本模块 ? 这里面会用到几个模块,一个是??目录下所有文件的的函数:listdir 常用的使用方法: import os filenames = os.listdir('.') print(filenames) 另外一个就是查看该目录下是否有特定的文件,这个就是name.swith()函数,具体的使用方法如下: state = any(name.ends

JavaSE8基础 File list 获取指定文件夹下的第一层文件和文件夹的名字

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) information: 被查看文件夹中的内容截图. code: package jizuiku0; import java.io.File; /* * @version V17.09 */ public class GetName { public static void main(String[] args) { String

遍历指定文件夹下的所有图片,并复制到指定目录下

import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; public class Copy { /** * 遍历文件夹下的所有图片文件,并复制到指定文件夹下 */ static String srcfile = "E:/I

java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码

原文:java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码 源代码下载地址:http://www.zuidaima.com/share/1550463660264448.htm 今天有个需求,想把某个文件夹下所有后缀名为jsp的更改为ftl,本来想用bat实现对bat的高级语法也不太了解,后来发现还需要递归遍历所有的子文件夹,所以用java实现了一个功能一样的代码,有需要的牛人可以下载修改为自己想要的. 这样可以兼容windows和linux. package com.zuidaima