`
newand
  • 浏览: 37520 次
  • 性别: Icon_minigender_1
  • 来自: nj
最近访客 更多访客>>
社区版块
存档分类
最新评论

读条件目录下的所有满足条件的文件(包括子目录)

    博客分类:
  • JAVA
阅读更多
package io;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

/**
 * get the file path
 * @author 
 *
 */
public class GetFile {
	private String regex;
	/**
	 *  pathList is a list of the paths which match the regex
	 */
	public List pathList = new ArrayList();
	public GetFile(String regex) {
		this.regex = regex;
	}
	/**
	 * use pattern to filter the paths
	 * attention:1.当我们要用类似"*"来表示任意的时候,使用".*"("."在java里表示任意字符)
	 * 			 2.想使用"\\"来表示文件符号的时候,需要使用"\\\\"
	 * TODO:these should be relized in the class which read the xml to get the regex
	 * @param path
	 * @return
	 */
	private boolean match(String path) {
		Pattern pattern;
		pattern = Pattern.compile(regex);
		return pattern.matcher(path).matches();
	}
	/**
	 * use a recursion to visit every file in the directory and the sub-directories
	 * @param filePath
	 */
	public void getFileList(String filePath) {
		File path = new File(filePath);
		File[] list;
		list = path.listFiles();
		for (int i = 0; i < list.length; i++) {
			if( list[i].isDirectory()){
				getFileList(list[i].getAbsolutePath());
			} else {
				if (match(list[i].getAbsolutePath())) {
					pathList.add(list[i].getAbsolutePath());
				}
			}
		}
	}
	public static void main(String[] args) {
//		GetFile f = new GetFile(".*.class");
		GetFile f = new GetFile(".*test\\\\.*.java");
		f.getFileList("E:\\opensource\\destroyMaula");
		for(int i=0; i < f.pathList.size(); i++) {
			System.out.println(f.pathList.get(i));
		}
	}
}

0
0
分享到:
评论

相关推荐

    编写一个java应用程序,将一个包含多个子目录和文件的目录复制到另外一个指定的目录下

    2. **递归遍历目录**:由于要复制的目录可能包含多层子目录,因此需要使用递归方法来遍历所有子目录和文件。从根目录开始,检查每个文件是否是目录,如果是,继续递归;如果不是,将其添加到复制队列中。 3. **文件...

    易语言源码包含子目录的文档搜索.rar

    “包含子目录的文档搜索”这一功能,意味着程序不仅会在指定的根目录下搜索文件,还会递归地遍历所有子目录,寻找匹配条件的文档。在易语言中,这通常需要使用到如`目录列表`、`文件存在`等函数,以及循环结构来实现...

    易语言目录文件自动备份源码

    易语言提供了“取目录文件列表”函数,可以用于获取指定目录下的所有文件和子目录。此外,“复制文件”和“移动文件”函数则用于将文件从原位置复制或移动到备份位置。 3. **日期和时间处理**:为了实现自动备份,...

    nodejs 递归拷贝、读取目录下所有文件和目录

    首先,递归拷贝目录下所有文件和子目录通常需要先读取源目录中的所有文件和子目录,然后判断每个元素的类型。如果元素是文件,则直接进行拷贝操作;如果元素是目录,则递归调用拷贝函数,直到所有文件和子目录都被...

    根据后缀名获取文件列表

    1. **listFiles()**:此方法返回指定目录下所有文件和子目录的`File`对象数组。如果没有文件或子目录,它将返回`null`。 2. **listFiles(FilenameFilter)**:此方法允许我们传递一个`FilenameFilter`对象,它定义了...

    AIX命令介绍篇-find-命令实例讲解.doc

    这条命令会查找根目录下所有权限为`755`(即所有者可读写执行,组和其他用户只可读执行)的文件。 #### 五、按照文件属主特征查找 1. **在`/`目录下查找所有属于用户`mbfe`的文件**: ```bash find / -user mbfe...

    linux常用命令(50个).docx

    `-a`显示所有文件,包括隐藏文件,`-l`以长格式列出,显示文件的详细信息,`-h`以人类可读的格式显示文件大小,`-R`递归列出子目录的内容,`-t`按照修改时间排序。例如,`ls -lh /home`将列出`/home`目录下所有文件...

    php获取目录所有文件并将结果保存到数组(实例)

    // 获取当前目录下所有jpg和png文件 $files = []; $directory = "."; // 检查目录是否存在 if (!is_dir($directory)) { echo "目录 {$directory} 不存在!"; exit; } // 使用glob遍历目录 foreach (glob($...

    java 文件操作相关命令

    如果想要更详细的文件信息,可以使用`listFiles()`方法,它返回一个`File`数组,包含了该目录下的所有文件和子目录。 #### 四、修改文件名和权限 - `renameTo(File dest)`:重命名或移动文件。 - `setReadOnly()`...

    linux常用命令

    -name "*.c"`将查找当前目录及其子目录下所有扩展名为.c的文件。 - `find . -type f -size +20M`将查找当前目录及其子目录下大小超过20MB的文件。 - `find . -mtime -20`将查找当前目录及其子目录下最近20天内被...

    ssah.lib.nbmm.marc.rar_marc_机读目录

    《ssah.lib.nbmm.marc.rar_marc_机读目录》是一个与图书馆自动化系统相关的压缩包,主要涉及机读目录(MARC)数据的解析和处理。MARC,即Machine-Readable Cataloging,是图书馆界广泛使用的标准格式,用于存储书籍...

    易语言源码浏览文件夹.7z

    5. 文件遍历:可以使用“列举目录”命令来遍历指定目录下的所有文件和子目录,这对于构建文件管理器或类似应用非常有用。 6. 路径处理:易语言提供了“完整路径”、“相对路径”、“目录名”和“文件名”等函数,...

    PHP文件与目录操作示例

    5. **`is_writable()`** 和 **`is_readable()`** 函数:这两个函数分别检查文件是否可写和可读,确保只有满足条件的文件才能被进一步处理。 6. **`in_array()`** 函数:检查指定值是否存在于数组中,这里用于检查...

    matlab开发-FileList

    `dir`函数返回指定目录下所有文件和子目录的信息,然后通过适当的逻辑筛选出需要的文件。例如: ```matlab files = dir('*.txt'); % 获取当前目录下所有.txt文件的信息 fileNames = {files.name}; % 提取文件名 ```...

    Node.js本地文件操作之文件拷贝与目录遍历的方法

    目录遍历指的是对指定目录及其子目录进行遍历,找到所有满足条件的文件或子目录。在遍历过程中,递归算法是一种常见的解决方案,它通过函数自我调用来简化目录结构的处理。深度优先遍历(DFS)是一种递归遍历算法,...

    linux命令集

    19. `find`:在指定目录下查找文件或满足特定条件的文件。可以按名称、大小、所有者、时间戳等条件搜索。 20. `locate`:快速查找文件,基于数据库,比`find`更快但可能不实时。 21. `updatedb`:更新`locate`用到...

    linux系统管理常用命令(精).pdf

    13. `find`:在指定目录下递归查找满足特定条件的文件,如`-name`按文件名查找,`-size`按大小查找,`-type`按文件类型查找。 14. `cd`:改变当前工作目录。`cd -p`确保进入物理路径,即使目标是符号链接。 15. `...

    [详细完整版]3操作系统.doc

    在系统测试中,包含了登录、创建文件、打开/关闭文件、读/写文件、列出目录、删除文件和子目录等一系列操作,验证了系统功能的实现。虽然在实际运行中可能存在界面不完美或功能不完善的问题,但通过不断调试和改进,...

    Linux_操作系统-基础操作-教学

    目录用于组织文件和子目录;符号链接类似于Windows的快捷方式,指向另一个文件或目录;设备文件则代表硬件设备,如键盘、鼠标或硬盘。 Linux的基础操作包括命令行交互、文件管理、权限设置等。命令行是Linux的核心...

    ip-guard苹果系统Mac基础与客户端2020.pptx

    * /System:他只包含一个名为Library的目录,这个子目录中存放了系统的绝大部分组件 * /Users:存放用户的个人资料和配置 * /Volumes:文件系统挂载点存放目录 * /cores:内核转储文件存放目录 * /private:里面的子...

Global site tag (gtag.js) - Google Analytics