`
windywindy
  • 浏览: 170386 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

我所知道的过滤文件的2种方式

阅读更多
第一种:
import java.io.*;

public class FileFilterTest {

	public static void main(String args[]) {
		File dir = new File("d:\\file"); // 用File 对象表示一个目录
		Filter filter =new Filter("java");
		System.out.println("list java files in directory "+dir);
		String files[]=dir.list(filter); //列出目录dir下,文件后缀名为java的所有文件
		for(int i=0;i<files.length;i++){
			File f=new File(dir,files[i]); //为目录dir 下的文件或目录创建一个File 对象
			if(f.isFile()) //如果该对象为后缀为java的文件, 则打印文件名
				System.out.println("file "+f);
			else
				System.out.println("sub directory "+f ); //如果是目录则打印目录名

		}
	}
}

class Filter implements FilenameFilter {
	String extent;
	
	public Filter(String extent) {
		this.extent = extent;
	}

	public boolean accept(File dir, String name) {
		return name.endsWith("."+extent); //返回文件的后缀名;
	}

}


第二种:
import java.io.File;
import java.io.FileFilter;

public class FileFilterTest2 {
	public static void main(String args[]){
		String pathName = ".";
		if(args!=null && args.length>0){
			pathName = args[0];
		}
		File file = new File(pathName);
		if(file.isFile()){
			System.out.println("参数错误!");
			return;
		}
		filter(file);
	}
	
	/**
	 * 文件过滤
	 * @param file
	 */
	public static void filter(File file){
		File fs[] = file.listFiles(new FileFilter(){
			public boolean accept(File f){
				if(f.isFile()){
					String name = f.getName();
					if(name.endsWith(".txt")){
						return true;
					}
				}
				if(f.isDirectory()){
					return true;
				} 
				return false;
			}
		});
		System.out.println("ok--"+fs.length);
		if(fs!=null && fs.length>0){
			for(File f:fs){
				if(f.isFile()){
					System.out.println(f.getAbsolutePath());
				}else{
					System.out.println("else--"+f.getAbsolutePath());
					filter(f);
				}
			}
		}
	}
}
分享到:
评论

相关推荐

    文件过滤驱动代码

    文件过滤驱动代码是一种在操作系统内核层对文件系统操作进行拦截和处理的技术,它主要用于实现安全控制、数据保护、性能优化等功能。在Windows系统中,文件过滤驱动通常以Kernel-Mode Filter Driver的形式存在,它...

    filemon,又一个文件过滤驱动

    文件过滤驱动是Windows内核模式驱动的一种,它们在I/O请求路径(IRP)中插入,可以捕获并处理文件系统操作,允许程序拦截、修改或完全控制文件访问。Filemon通过这种方式来实时监控系统中的文件活动。 在标签中虽然...

    树过滤

    在处理树过滤时,我们通常会用到两种主要的遍历方式:前序遍历、中序遍历和后序遍历。这些遍历方法是递归地访问每个节点,使得我们可以检查每个节点并应用过滤规则。 1. **前序遍历**:首先访问根节点,然后遍历左...

    怎么样知道一个文件是否已经被谁打开了 如何打开被独占打开了的文件方法 用createfile以独占方式打开的那种方法怎么不行有没有别的方法

    - **文件系统过滤驱动**:高级用户可以编写文件系统过滤驱动,拦截并处理文件打开请求,但这种方式需要深入的驱动开发知识。 - **API钩子**:通过钩子技术(如SetWindowsHookEx)监视`CreateFile`等函数调用,但...

    实现一个具有还原功能的磁盘卷过滤驱动

    2. **过滤设备**:过滤设备是一种特殊的设备,它位于设备栈中目标设备的上方。这意味着所有的IRP都会先经过过滤设备,然后再传递给目标设备。 3. **卷参数块(Volume Parameter Block,VPB)**:这是一个重要的数据...

    springboot+jsp 使用过滤器.do

    通过“springboot”标签,我们知道这个项目是基于Spring Boot构建的,意味着我们可以通过约定优于配置的方式来快速启动和运行一个Java应用。 **2. JSP(JavaServer Pages)** JSP是一种动态网页技术,它允许开发者...

    HEX和BIN文件快速对比工具,可以对比两个HEX和BIN文件,清晰看出不同,对于嵌入式STM32单片机开发很有帮助

    在嵌入式系统开发中,HEX和BIN文件是两种常见的编程格式,它们用于存储程序代码和数据。本文将深入探讨这些格式以及如何利用特定工具进行对比,这对于STM32单片机的开发至关重要。 首先,HEX文件(Intel HEX格式)...

    中文乱码过滤器(包括GET和POST)

    2. 配置过滤器:在Web应用的配置文件(如web.xml)中,添加过滤器配置,指定过滤器类名和相关参数,如字符编码类型。 ```xml &lt;filter-name&gt;CharsetFilter &lt;filter-class&gt;...

    struts2笔记之文件上传

    在Struts2中,有两种方式实现文件过滤和验证: 1. 手动验证:在Action类中重写`validate()`方法,检查`contentType`属性是否符合预设的允许类型列表。如果不符合,使用`addFieldError()`方法添加错误信息,导致视图...

    简易文件管理器

    9. **排序与过滤**:根据日期、大小、名称等属性对文件进行排序,或者通过过滤器显示特定类型的文件,可以帮助用户快速定位所需内容。 10. **用户界面**:简洁易用的用户界面是提高用户体验的关键。理解菜单、工具...

    structs文件上传下载

    通常,我们需要知道文件在服务器上的位置,然后使用`ResponseUtils.write()`方法将文件内容写入响应流。我们还需要设置正确的HTTP头信息,如Content-Type和Content-Disposition,以指示浏览器如何处理响应内容。 ...

    文件扩展名批量修改器

    3. **选择正确的新扩展名**:确保你清楚地知道将文件扩展名更改为哪种类型是合适的,否则可能导致数据丢失或损坏。 4. **谨慎操作**:不要对系统文件或未知文件进行批量修改,这可能会引发系统不稳定甚至崩溃。 ...

    C#实现文件的复制源代码

    通过这种方式,我们可以实现一个完整的文件复制功能,不仅能够复制文件,还能在复制过程中提供进度反馈。这在处理大文件时尤其有用,因为它可以让用户知道操作的状态,增加用户体验。在实际开发中,可能还需要处理更...

    预览多个文件

    在IT领域,预览多个文件是一...在实际应用中,用户可能会通过文件扩展名过滤、搜索关键词、缩略图视图等方式来管理和预览大量文件。在现代数字化办公环境中,这样的多文件预览工具已经成为提升生产力不可或缺的一部分。

    hex转mif文件

    6. **文件处理命令**:在Linux下,`cat`、`sed`、`grep`、`cut`等命令用于查看、处理和过滤文件。在转换过程中,你可能需要结合这些命令来预处理或后处理hex文件。 7. **理解数据布局**:在进行转换时,你需要知道...

    带进度条大文件上传源码(单文件多文件都可以传)_uploaddemo.zip

    这种功能对于用户交互性非常关键,因为它可以提供实时反馈,让用户知道文件上传的状态,从而提高用户体验。 在文件上传的过程中,有几个重要的知识点: 1. **分块上传**:对于大文件,一次性上传可能会导致内存...

    java的设计模式之过滤器模式.docx

    过滤器模式,也称为 Chain of Responsibility 模式,是一种行为设计模式,主要用于处理请求的过滤逻辑。在 Java 中,过滤器模式通常应用于网络请求、数据预处理或权限控制等场景。这种模式允许我们通过一系列相互...

    android读取sd卡中MP3文件

    5. **MP3文件过滤**:遍历过程中,可以使用文件过滤器(`FilenameFilter`)或lambda表达式来筛选出MP3文件。检查文件扩展名为".mp3"即可。 ```java File[] mp3Files = mp3Dir.listFiles(file -&gt; file.getName()....

    将xls文件导入到列表控件中

    - 如果数据量较大,为了提高性能,可以考虑使用批量插入的方式,如一次插入多行。 4. **错误处理和资源释放**: 在操作完成后,记得关闭Excel工作簿和释放Excel应用程序实例,以防止内存泄漏。同时,对于可能出现...

Global site tag (gtag.js) - Google Analytics