有一次用Google桌面的搜索功能,感觉搜索面积太窄了,检索不到自己需要的文件,一时心血来潮,写了一个磁盘文件搜索的功能,嘿嘿,将代码贴出来,后来用Swing实现了一个可视化的搜索工具,改进了部分代码,不过代码太长了就不贴了。
/**
* 实现硬盘文件搜索功能
*
* @param String
* fileName,String fileType,
* @param String
* searchPath,boolean matchAll
* @param boolean ignoreCase
* @return
*/
public static void searchFile(String fileName, final String fileType,
String searchPath, boolean matchAll, boolean ignoreCase) {
// 先判断传入的文件名
if (fileName == null || "".equals(fileName)) {
return;
}
// 实例化参数对象
File[] files = null;
FileFilter typeFilter = new FileFilter() {
public boolean accept(File pathName) {
if (pathName.isDirectory()) {
return true;
} else {
if (fileType == null || "".equals(fileType)) {
return true;
} else if (pathName.getName().endsWith("." + fileType)) {
return true;
}
}
return false;
}
};
// 如果指定搜索路径 则限定搜索 否则 全盘搜索
if (searchPath == null || "".equals(searchPath)) {
files = File.listRoots();
} else {
files = new File[1];
files[0] = new File(searchPath);
}
for (File file : files) {
doIt(fileName, file, typeFilter, matchAll, ignoreCase);
}
}
/**
* DOIT SEARCH
*
* @param String
* fileName,String fileType,
* @param String
* searchPath,boolean matchAll
*
* @return
*/
private static List<String> doIt(String fileName, File file, FileFilter filter,
boolean matchAll, boolean ignoreCase) {
System.out.println("正在搜索:"+file);
File[] files = file.listFiles(filter) != null ? file.listFiles(filter)
: new File[0];// 先迭代当前目录结构的文件
for (File file2 : files) {
if (file2.isDirectory()) {
doIt(fileName,file2,filter,matchAll,ignoreCase);
} else {
if("*".equals(fileName)){
fileList.add(file2.getAbsolutePath());
}else{
if (matchAll) {
if (ignoreCase) {
if (file2.getName().equalsIgnoreCase(fileName)) {
fileList.add(file2.getAbsolutePath());
System.out.println(file2.getAbsolutePath());
}
} else {
if (file2.getName().equals(fileName)) {
fileList.add(file2.getAbsolutePath());
System.out.println(file2.getAbsolutePath());
}
}
} else {
if (ignoreCase) {
if (file2.getName().toUpperCase().contains(
fileName.toUpperCase())) {
fileList.add(file2.getAbsolutePath());
System.out.println(file2.getAbsolutePath());
}
} else {
if (file2.getName().contains(fileName)) {
fileList.add(file2.getAbsolutePath());
System.out.println(file2.getAbsolutePath());
}
}
}
}
}
}
return fileList;
}
分享到:
相关推荐
《磁盘文件搜索技术详解——基于易语言源码分析》 在信息技术日益发达的今天,高效地管理和查找电脑中的文件显得尤为重要。本文将深入探讨一个关键的计算机技术——磁盘文件搜索,具体聚焦于易语言实现的源码分析。...
【磁盘文件搜索工具】是一种基于Visual Basic(VB)编程语言开发的实用程序,它能够帮助用户快速、高效地在计算机的磁盘中查找特定的文件或文件夹。这款工具的关键特性是支持通配符搜索,这使得用户可以使用“?”和...
在IT领域,多线程遍历磁盘文件是一项常见的任务,尤其在大数据处理、文件管理系统以及备份恢复等场景中。本文将深入探讨如何利用多线程技术高效地遍历包括隐藏文件和系统文件在内的所有磁盘文件。 首先,我们要理解...
在日常工作中,我们经常需要快速找到存储在计算机中的特定文件,这正是“超快本地磁盘文件搜索工具”所解决的问题。这款工具相较于Windows操作系统自带的文件搜索功能,具有显著的速度优势,能够实现几乎“秒搜”的...
操作系统课程设计中的“模拟磁盘文件管理程序”旨在让学生理解和实现操作系统中文件系统的部分功能。在这一设计中,主要涉及以下几个关键知识点: 1. **数据结构设计**:首先,需要自定义磁盘文件管理的数据结构。...
"磁盘文件搜索神器"指的是名为"Everything"的高效文件搜索工具,专为Windows操作系统设计。这个工具以其快速、精准的文件查找能力而备受赞誉。Everything-1.4.1.895.x64-Setup.exe是该软件的安装程序,适用于64位的...
在VB(Visual Basic)编程环境中,搜索磁盘文件是一项常见的任务,这通常涉及到文件系统对象的使用,如FileSystemObject(FSO)。...通过理解并运用这些知识,开发者可以创建出高效且用户友好的文件搜索工具。
标题“vfp9搜索磁盘文件”涉及到的是一个使用Visual FoxPro 9(VFP9)编程语言开发的工具,其主要功能是快速搜索硬盘上的文件。VFP9是一款关系数据库管理系统,它提供了丰富的编程环境,支持创建各种应用程序,包括...
本文将详细探讨“磁盘文件恢复工具”这一核心概念,以及与其相关的技术知识。 磁盘文件恢复工具是专门设计用来帮助用户找回因误删除、格式化、病毒感染或其他原因丢失的数据的应用程序。这些工具通过扫描硬盘上的...
《磁盘文件搜索Everything——快速定位硬盘资源的神器》 在日常工作中,我们常常需要在海量的硬盘文件中寻找特定的文档、图片或程序,这是一个既耗时又考验耐心的过程。然而,有了“Everything”这款搜索工具,这...
本主题聚焦于使用C++编程语言实现一个递归算法,来搜索并遍历Windows操作系统的磁盘文件,特别是针对应用程序。 递归是一种函数或过程调用自身的技术,通常用于解决可以分解为相似子问题的问题。在搜索和遍历文件...
但可以遍历磁盘,并将结果输出到文件。功能很强大,绝对好用。 使用方法: 运行程序: 首先输入要遍历的目录: 比如: C:\ 或者 C:\Windows 然后,输入你要存储这些记录的.txt文件,比如 D:\result.txt (需要提前建立...
总结,磁盘文件扫描系统V1源码展示了多线程技术在文件搜索领域的应用,通过合理的架构设计和算法选择,实现了高效、灵活的文件扫描功能。未来,开发者可以在此基础上持续优化,以满足更多元、更复杂的使用需求。
在日常使用电脑的过程中,我们经常会遇到磁盘空间不足或者系统运行缓慢的问题,这可能是由于大文件占用过多的存储空间和CPU资源导致的。为了解决这个问题,我们可以利用专业的磁盘大文件扫描工具来定位并管理这些...
这类程序通常利用系统底层的I/O操作,直接与硬盘驱动器进行交互,以提高文件搜索的速度。文件搜索功能对于用户来说非常实用,尤其在需要快速定位大量文件或者特定格式文件时。 描述中提到的“结合配置文件全盘搜索...
在Windows操作系统中,例如,其内置的“文件搜索”功能是通过索引来实现的。索引服务会定期扫描磁盘上的所有文件,记录下文件名、位置、内容以及元数据等信息,并将这些信息整理成便于搜索的数据结构。这样,当用户...
这时,第三方的文件搜索工具就显得尤为重要,比如"Everything"。 "Everything"是一款高效、快速的文件和文件夹搜索引擎,由 VoidTools 公司开发。这款工具以其卓越的性能和易用性,在IT行业中赢得了广泛赞誉。与...
本项目"用C#实现的磁盘文件遍历程序"正是利用了C#的特性来实现对指定路径下所有文件的检索。下面将详细介绍这个程序的工作原理以及涉及到的技术点。 首先,我们要理解的是"树结构"。在计算机科学中,文件系统通常被...
"Everything"是一款高效、快速的磁盘文件搜索引擎,专为Windows操作系统设计,尤其适用于NTFS文件系统的环境。这款工具能够迅速地对硬盘上的文件和文件夹进行即时搜索,极大地提升了用户在海量数据中的查找效率。 ...