`
bcworld
  • 浏览: 39441 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

在指定路径下搜索含指定关键词的所有文件

阅读更多

这个功能类似notepad++的文件搜索功能,如全词匹配“int”的搜索结果如下所示:

 

 

但是搜索结果呈现出来的形式可能不是我们需要的,如我们只需要知道哪些文件有关键词,把结果导出到EXCEL中等等,这时就需要我们自己编码了,下面只是个参考:

 

import java.io.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CheckKeyWord {
	public final String fileType="java";//文件扩展名
	public static final String checkDir="E:\\svn\\mysvnproject\\check1\\ebay";
	public final boolean skipDirWithPointStart=true;//跳过以.号开头的文件夹
	public static String keywords[]={"int","Integer"};//搜索的关键词
	public static Map<String, Integer> report=new HashMap<String,Integer>();
	public static void main(String[] args) {
		CheckKeyWord c=new CheckKeyWord();
		try {
			c.check(checkDir);
		} catch (Exception e) {
			e.printStackTrace();
		}
		Set<String> files=report.keySet();
		Iterator<String> iterator=files.iterator();
		while(iterator.hasNext()){
			String file=iterator.next();
			Integer count=report.get(file);
			System.out.println(file+":\t("+count+" hits)");
		}
		
		
	}
	private void check(String dir) throws Exception{
		if (keywords.length==0) {
			System.out.println("请列出关键词");
			return;
		}
		File dirs=new File(dir);
		File files[]=dirs.listFiles();
		FileReader fReader=null;
		BufferedReader br=null;
		StringBuffer reg=new StringBuffer();
		for (int i = 0; i < keywords.length; i++) {
			reg.append(".* "+keywords[i]+" .*|");
		}
		String regex=reg.substring(0,reg.length()-1);
		Pattern pattern=Pattern.compile(regex);
		Matcher matcher=null;
		for(File tempFile:files){
			//跳过以点开头的文件夹,如.svn文件夹
			if (skipDirWithPointStart) {
				if (tempFile.isDirectory()) {
					check(tempFile.getAbsolutePath());
				} else {
					//读到某个文件
					if (checkFileType(tempFile,fileType)) {
						fReader=new FileReader(tempFile);
						br=new BufferedReader(fReader);
						String s=null;
						while((s=br.readLine())!=null){
							matcher=pattern.matcher(s);
							if (matcher.matches()) {
								//读取到的一行含给定关键字
								String absPath = tempFile.getAbsolutePath();
								if (!report.containsKey(absPath)) {
									report.put(absPath, 1);
								} else {
									report.put(absPath, report.get(absPath)+1);
								}
								System.out.println(absPath+"\t"+s);//文件全路径+含关键词的文本
							}
							
						}
					}
				}
			}
		}
	}
	private boolean checkFileType(File file, String fileType) {
		String fileName=file.getName();
		if (fileName.endsWith(fileType)) {
			return true;
		}
		return false;
	}
}
 

程序执行结果如下:

 

  • 大小: 12.4 KB
  • 大小: 16.7 KB
分享到:
评论

相关推荐

    易语言 全盘寻找指定文件或目录

    `:检查指定路径的文件或目录是否存在。 2. `获取当前目录`:获取当前程序的工作目录。 3. `设置当前目录`:改变当前程序的工作目录。 4. `获取磁盘信息`:获取磁盘的基本信息,如磁盘名称、总容量等。 5. `遍历目录...

    pdfjs_1.1.159添加在指定页码使用关键词检索

    在这个特定的场景中,我们关注的是PDF.js的1.1.159版本,它包含了对指定页码的关键词检索功能,并且能够高亮显示匹配的关键词。 关键词检索是阅读PDF文档时常用的功能,可以帮助用户快速找到文档中的关键信息。在...

    个人电脑指定文件全盘搜索

    【标题】"个人电脑指定文件全盘搜索"指的是在个人计算机上进行快速、全面的文件查找功能,这种功能能够帮助用户在所有磁盘分区中定位到特定文件或包含指定文本的文件。它允许用户输入关键词,甚至进行模糊查询,极大...

    易语言搜寻目录寻找文件

    在"易语言搜寻目录寻找文件"这个主题中,我们主要关注的是如何使用易语言来实现对指定目录下文件的搜索和处理。下面我们将深入探讨相关知识点。 首先,**搜寻目录寻找文件** 是程序开发中的常见需求,尤其是在处理...

    python实现搜索指定目录下文件及文件内搜索指定关键词的方法

    通过上述代码,我们可以轻松地实现一个功能强大的文件搜索工具,该工具不仅能搜索指定目录下的所有文件,还能进一步搜索文件内的关键词。这对于开发人员来说非常有用,尤其是在处理大量文件时。此外,通过记录执行...

    C#制作的windows系统文件快速搜索工具,读取USN,易用性与速度都已优化的很好。程序为免安装的exe文件。

    C#.net 做的文件搜索工具(windows)。原理是读取ntfs的USN文件日志,然后内建索引加速文件搜索过程。 1、列表文件支持批量处理(删除、复制、复制文件名路径、打开、重命名),或者引用系统菜单。 2、支持拼音首...

    指定目录下所有文件中批量查找替换字符串工具

    总之,"指定目录下所有文件中批量查找、替换字符串工具"是一个强大且实用的工具,它简化了在大量文件中进行查找和替换的工作流程,是IT专业人士不可或缺的辅助工具。通过合理利用这样的工具,我们可以更有效地管理和...

    【python办公自动化22】文件夹查找器(指定路径下输入关键词获得文件夹的位置及该文件夹下的文件内容)

    文件夹查找器1. 文件夹准备2....① 遍历指定路径下所有的内容(包括文件和文件夹) glob.glob(path, recursive = True) ② 获取路径的最后的文件/文件夹名称,判断是否为匹配的路径,如果是查找文件夹就是等

    设置指定类型文件关联图标

    5. **设置图标**:为了显示不同的图标,我们还需要在每个文件类型的主键下创建一个 "DefaultIcon" 主键,并设置其默认值为图标文件的完整路径,如 "C:\Program Files\MyApp\icon_cusa.ico"。 6. **重复步骤**:对于...

    根据关键词可以搜索docx,xlsx,pptx,pdf,html,txt文档内容及路径的工具(rust语言开发)

    能搜索指定路径下的路径 ②使用方法 在界面中输入要搜索的关键词;然后点击按钮选择路径,同时进入搜索状态 等搜索结束,会自动将结果存放入同级目录中的“扫描结果.txt”文件中,只需要打开此文件即可查看搜索的...

    搜索硬盘上所有指定文件并可选择清理

    标题中的“搜索硬盘上所有指定文件并可选择清理”是一个典型的计算机操作,涉及到文件系统管理、文件搜索算法以及用户界面设计。在这个过程中,我们需要理解以下几个关键知识点: 1. **文件系统**:计算机存储数据...

    C#+多线程+文件搜索关键词

    在进行txt文件搜索时,我们需要遍历文件系统,读取每个txt文件,然后查找目标关键词。这可以通过`Directory.GetFiles()`方法获取指定目录下的所有txt文件,接着使用`File.ReadAllText()`或`StreamReader`逐行读取...

    关键词Java;jdk;JDK;文件管理系统。.zip

    在Java开发中,JDK(Java Development Kit)是不可或缺的一部分,它提供了编译、运行和调试Java程序所需的所有工具。本文将深入探讨Java JDK以及其在文件管理系统中的应用。 首先,JDK是Oracle公司提供的Java编程...

    VB源代码:查找指定目录的文件.rar

    `GetFolder`方法用于获取指定路径的Folder对象,然后可以使用`Files`属性获取该目录下的所有File对象。通过循环遍历这些File对象,我们可以显示每个文件的名称或者其他信息。 3. 文件搜索: 在这个VB程序中,可能...

    在文件内容中查找关键词,文件夹递归查找,快速高效

    设定要搜索的根文件夹路径。 确定需要查找的关键词。 编写递归函数遍历文件夹 创建一个递归函数,用于遍历指定文件夹及其子文件夹。 读取文件内容并查找关键词 在递归函数中,读取每个文件的内容。 使用高效的方法...

    递归删除指定文件例子

    本话题将详细介绍如何使用递归方法在Windows环境下删除指定类型的文件,以"dpdb.bat"和"cv2pdb.exe"为例。 首先,让我们理解什么是pdb文件。pdb文件是Microsoft Visual Studio编译器生成的一种特殊文件,它存储了源...

    python根据多个文件名批量查找文件

    最终,代码的运行结果会生成一个新的文件夹,其中包含了所有与关键词匹配的文件,同时更新后的文件名列表将反映出每个关键词匹配到的文件数量。 使用Python进行文件批量查找和管理的优势在于其高效性和准确性,能够...

    易语言取文件指定行数据例程

    这通常使用“打开文件”命令,指定文件的路径,并设置打开模式(如读取模式)。接着,我们需要确定要读取的行数,这可能涉及到计数器变量的使用,以及循环结构(如“重复”或“如果…那么”语句)来遍历文件的每一行...

    文件搜索工具(java版)

    在IT行业中,文件搜索工具是日常工作中的重要辅助软件,它能帮助用户快速定位到所需的文件或数据。"文件搜索工具(java版)"是专为此目的设计的一个实用程序,尤其适用于那些处理大量文件和压缩包的Java开发者。下面...

    取TXT文件指定内容.rar

    1. **打开文件**:在易语言中,我们可以使用“打开文件”命令打开一个TXT文件,该命令需要提供文件路径作为参数。例如: ```易语言 .文件句柄 = 打开文件("C:\path\to\file.txt", "只读") ``` 这里,`"只读"`...

Global site tag (gtag.js) - Google Analytics