`
yang_min
  • 浏览: 342308 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java通过通配符查找文件

阅读更多
package com.ym.test.file;

import java.io.*; 
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FileDirectorySearch {
	/**
	 * 查询指定目录下的所有文件
	 * @param args
	 */ 
	public static void main(String[] args) { 
//	   // TODO Auto-generated method stub
		FileDirectorySearch star=new FileDirectorySearch(); 
//	   String path="d:"; 
//	   File war=new File(path); 
//	   int count=star.findTxtFileCount(war,"exe"); 
//	   System.out.println("----: " + count);
		
		File[] files = star.getFiles("d:/share", "*");
		for(int i=0;i<files.length;i++){
			System.out.println(files[i]);
		}
		
	} 
	/**
	 * 创建查询指定目录下文件的方法
	 * 
	 * @param allList
	 *            指定目录
	 * @param endName
	 *            指定以“”结尾的文件
	 * @return 得到的文件数目
	 */ 
	public int findTxtFileCount(File allList,String endName){ 
	   // 
	   int textCount=0; 
	// 创建fileArray名字的数组
	File[] fileArray= allList.listFiles(); 
	// 如果传进来一个以文件作为对象的allList 返回0
	if(null==fileArray){ 
	     return 0; 
	    } 
	// 偏历目录下的文件
	for(int i=0;i<fileArray.length;i++){ 
	   // 如果是个目录
	       if(fileArray[i].isDirectory()){ 
	     // System.out.println("目录: "+fileArray[i].getAbsolutePath());
	        // 递归调用
	        textCount+=findTxtFileCount(fileArray[i].getAbsoluteFile(),endName); 
	     // 如果是文件
	      }else if(fileArray[i].isFile()){ 
	     // 如果是以“”结尾的文件
	     if(fileArray[i].getName().endsWith(endName)){ 
	        // 展示文件
	        System.out.println("exe文件: "+fileArray[i].getAbsolutePath()); 
	        // 所有以“”结尾的文件相加
	        textCount++; 
	     } 
	     } 
	} 
	return textCount; 

	} 
	 /**
	    * 在本文件夹下查找
	    * @param s String 文件名
	    * @return File[] 找到的文件
	    */
	   public static File[] getFiles(String s)
	   {
	     return getFiles("./",s);
	   }
	  
	   /**
	    * 获取文件
	    * 可以根据正则表达式查找
	    * @param dir String 文件夹名称
	    * @param s String 查找文件名,可带*.?进行模糊查询
	    * @return File[] 找到的文件
	    */
	   public static File[] getFiles(String dir,String s) {
	     //开始的文件夹
	     File file = new File(dir);

	     s = s.replace('.', '#');
	     s = s.replaceAll("#", "\\\\.");
	     s = s.replace('*', '#');
	     s = s.replaceAll("#", ".*");
	     s = s.replace('?', '#');
	     s = s.replaceAll("#", ".?");
	     s = "^" + s + "$";

	     System.out.println(s);
	     Pattern p = Pattern.compile(s);
	     ArrayList list = filePattern(file, p);

	     File[] rtn = new File[list.size()];
	     list.toArray(rtn);
	     return rtn;
	   }

	   /**
	    * @param file File 起始文件夹
	    * @param p Pattern 匹配类型
	    * @return ArrayList 其文件夹下的文件夹
	    */

	   private static ArrayList filePattern(File file, Pattern p) {
	     if (file == null) {
	       return null;
	     }
	     else if (file.isFile()) {
	       Matcher fMatcher = p.matcher(file.getName());
	       if (fMatcher.matches()) {
	         ArrayList list = new ArrayList();
	         list.add(file);
	         return list;
	       }
	     }
	     else if (file.isDirectory()) {
	       File[] files = file.listFiles();
	       if (files != null && files.length > 0) {
	         ArrayList list = new ArrayList();
	         for (int i = 0; i < files.length; i++) {
	           ArrayList rlist = filePattern(files[i], p);
	           if (rlist != null) {
	             list.addAll(rlist);
	           }
	         }
	         return list;
	       }
	     }
	     return null;
	   }



}

 

分享到:
评论

相关推荐

    Java 通过通配符查找文件 *.*, *.java, a*.*, a*.java

    Java 通过通配符查找文件 例如:*.*, *.java, a*.*, a*.java

    Java使用路径通配符加载Resource与profiles配置使用详解

    带通配符的classpath使用“ClassLoader”的“Enumeration&lt;URL&gt;getResources(String name)”方法来查找通配符之前的资源,然后通过模式匹配来获取匹配的资源。 三、classpath的使用 classpath用在哪里?在编译打包...

    类似windows文件查找功能

    - **内容搜索**:在Windows Vista及以上版本,可以搜索文件内容,不只是文件名。 - **文件夹限制**:限定搜索范围,只在特定的文件夹或驱动器中查找。 了解这些基础知识后,我们可以利用编程语言(如Python、C#等)...

    用java写的文件搜索工具V1.1

    【Java文件搜索工具V1.1】是一款基于Java编程语言开发的高效文件查找应用程序,它专为用户提供了灵活且强大的搜索功能。此工具允许用户按照多种条件定位到所需的文件,提高了在大量数据中的查找效率。 首先,让我们...

    电脑文件文件极速搜索工具

    7. **网络共享**:除了本地搜索,Everything还支持通过网络共享搜索结果,使得多台计算机之间的文件查找变得更加便捷。 8. **自定义设置**:用户可以根据自己的需求自定义界面主题、快捷键,甚至可以通过API接口与...

    java反编译插件 方便查看class文件

    Java反编译插件在软件开发领域中扮演着重要的角色,尤其对于Java开发者而言,它可以帮助我们理解已编译的`.class`文件内部的工作机制。`.class`文件是Java源代码经过编译后的二进制形式,它们包含了执行Java程序所需...

    关于如何在DOS命令行模式下编译JAVA文件或工程的问题

    这可以通过在Windows搜索框中输入`cmd`并回车来实现。 2. 使用`cd`命令进入Java源代码所在的目录。例如,如果你的`helloworld.java`位于`C:\Users\YourName\Documents\Java`,则执行`cd C:\Users\YourName\Documents...

    3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件

    - **查找文件**:利用`LocatedFileStatus[] globStatus(Path pathPattern)`根据通配符查找文件。 - **拷贝文件/目录**:调用`boolean rename(Path src, Path dst)`,实现文件或目录的重命名(相当于拷贝并删除源文件...

    通配符描述

    Python的`glob`模块则提供了类似的功能,可以方便地根据通配符查找文件。 描述中提到的“博文链接:https://marlboro027.iteye.com/blog/1066692”是一个具体的博客文章链接,虽然没有提供具体内容,但我们可以推测...

    Java桌面搜索 JDesktopSearch

    Java桌面搜索(JDesktopSearch)是一个基于Java开发的桌面搜索引擎,它允许用户快速高效地在本地计算机上搜索文件、文档、电子邮件等内容。这个工具利用了Java的跨平台特性,因此可以在支持Java运行环境的操作系统上...

    通配符比较

    在Java中,我们可以使用`java.io.File`类的`list()`或`listFiles()`方法,配合通配符进行文件查找。例如,`list(FilenameFilter)`允许我们传入一个实现了`FilenameFilter`接口的类实例,该接口的`accept()`方法可以...

    JAVA练习题压缩文件

    "JAVA练习题压缩文件"提供了丰富的练习题目,帮助学习者巩固理论知识,提高编程能力。 这个压缩文件包含的"JAVA练习题"可能涵盖以下几个核心知识点: 1. **基础语法**:包括变量声明、数据类型(如基本类型、引用...

    本地文件快速查找

    标题“本地文件快速查找”和描述中的“本机快速查找文件,可根据关键字很迅速的把文件全部查找,速度特快”都指向了这个核心主题:高效地在计算机本地存储中搜索文件。 文件查找技术主要分为两类:基于索引的搜索和...

    Java搜索引擎 Lucene

    你可以通过研究这个版本的源代码来深入理解Lucene的工作原理,或者直接使用这些库文件在你的项目中集成Lucene 3.6.1版本的搜索功能。记得在使用时,确保与你的Java运行环境兼容,并考虑升级到最新版本以获得最新的...

    Java开发技术大全(500个源代码).

    HelloNative.java 准备调用C函数的java文件 HelloNative.lib 用VC编译生成的静态库文件 HelloNative.obj 用VB编译生成的目标文件 HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个...

    windows本地文件快速搜索工具

    总的来说,"windows本地文件快速搜索工具"如"Everything.exe"极大地提升了Windows用户的文件查找效率,尤其适合经常需要在大量文件中寻找特定信息的工作场景。无论是日常办公还是开发者调试,它都是不可或缺的实用...

    从指定目录下查找指定文件的例子

    如果需要查找特定类型的文件,比如.txt文件,可以使用`glob.glob(pattern)`,其中`pattern`可以包含通配符,如 "*.txt"。这样,`glob.glob()`会返回匹配该模式的所有文件路径。 在Java中,可以使用`Files.walk()`...

    Java目录搜索类工具

    Java实现文件搜索工具类,支持通配符查询功能并返回所得到的File对象

    java环境搭建步骤

    classpath变量用于指定Java类加载器在查找类时需要搜索的目录路径。具体来说,path变量需要在原有值的基础上添加JDK安装目录下的bin文件夹路径,而classpath变量则需要指定JDK安装目录下的lib文件夹路径。 关于环境...

    运用api的快速文件搜索方法

    在数据库环境中,例如在文件索引服务如Elasticsearch或Solr中,可以利用其提供的API来高效搜索文件内容。这些服务会预先建立文件内容的索引,从而实现全文搜索和快速匹配。通过HTTP接口发送查询请求,即可返回匹配的...

Global site tag (gtag.js) - Google Analytics