`
朱凌峰
  • 浏览: 7694 次
文章分类
社区版块
存档分类
最新评论

文件搜索器

阅读更多

初探文件搜索器

一.效果

我用的笔记本是win7系统的,它自带的文件搜索功能虽然方便,但速度太慢,

常常搜索一个文件要等好几分钟,甚至几十分钟,相信大家也有过体验。

我用java写了一个简单的FileSearcher,发现它的速度比win7自带搜索器快很多,往往几秒钟就搜完了。

以图为证:

 

二.文件查找方法

下面简单介绍我的代码实现:

 

核心部分是利用递归算法,不断地列出当前目录(parent)下的子文件,判断子文件类型,若是目录,则继续递归;若是真实文件,则判断文件名中是否含有所需查找的关键字。

 

	/**
	 * 搜索文件方法
	 * 
	 * @param parent
	 * @param targetFileName
	 */
	public void search(File parent, String targetFileName) {
		if(stopFlag==false){
		if (parent.isFile()) {
			return;
		}
		if (parent.exists()) {
			File[] lf = parent.listFiles();
			if (lf == null) {
				return;
			}
			for (File f : lf) {
				if (f.isFile()) {
					countAll++;
					if (f.getName().indexOf(targetFileName) >= 0) {
						countFinded++;
//						jta_result.append("finded:" + f.getAbsolutePath()+"\r\n");
						jta_result.append(f.getAbsolutePath()+"\r\n");
					}
				}
				if (f.isDirectory()) {
					search(f, targetFileName);
				}
			}
		}
		}
	}

 

三。JFileChooser使用

为了查找时的方便,我还是用了JFileChooser这个组件,用户通过它来选择查找的初始目录,然后程序在该目录下查找所需文件。

效果如图:

 

 代码实现如下:

 

	/**
	 * show the filechooser frame
	 */
	public File showFileChooser(){
		JFileChooser fc = new JFileChooser("d:");  
        //是否可多选   
        fc.setMultiSelectionEnabled(true);  
        //选择模式,可选择文件和文件夹   
        fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);  
//      fc.setFileSelectionMode(JFileChooser.FILES_ONLY);   
//      fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);   
        //设置是否显示隐藏文件   
        fc.setFileHidingEnabled(true);  
        fc.setAcceptAllFileFilterUsed(false);  
        //设置文件筛选器   
//        fc.setFileFilter(new MyFilter("java"));  
//        fc.setFileFilter(new MyFilter("zip"));  
//          fc.setFileFilter(filter)
//          FileFilter
        int returnValue = fc.showOpenDialog(new JFrame("open")); 
//        int r=fc.showSaveDialog(new JFrame("save"));
        if (returnValue == JFileChooser.APPROVE_OPTION)  
        {  
            File file=fc.getSelectedFile()   ;
            System.out.println(file);
            return file;
//            fc.getSelectedFiles()  ; 
        }  
        else {
        	return null;
        }
	}
 上面红色部分获取并返回了在JFileChooser中选择的文件,程序调用出则利用它来查找文件。

 

 
四。cpu占用
最后再说说我的发现。打开windows任务管理器查看我的FileSearcher程序进程,发现其峰值cpu占用达到了80,再观察win7自带搜索器,cpu占用则比较少,常常在个位数。
由此可知,win7是为了保证计算机各个程序都能正常运行,所以限制搜索程序的cpu使用。而我自己的搜索器则全然不顾这些,要多快有多快,所以在计算机空闲时使用比较明智。
 
五。TextArea与JTextArea
与同学交流的过程中发现,当需要不断显示文本,且文本量大到超出文本框大小时,用java.awt.TextArea组件非常方便,当文本量超出文本框大小时,他会自动添加滚动条,
它能够自动跳转到最后一行,而且对显示的文本量几乎没有限制。而java.swing.JTextArea组件用来显示大量文本时显得不那么方便,上述TextArea的三项功能都没有。
 
六。代码见附件
 
  • 大小: 83.3 KB
  • 大小: 69.2 KB
分享到:
评论

相关推荐

    文件搜索器(文件搜索器)

    文件搜索器,正如其名,是一种能够帮助用户在计算机中快速定位和查找特定文件的工具。在日常工作中,我们常常需要查找存储在电脑中的某个文件,但面对庞大的文件系统,手动逐个文件夹查找无疑效率低下。这时,一个...

    文件搜索器(用于文件的搜索,更改日期等)

    文件搜索器是一款强大的工具,专为用户快速查找和管理计算机中的文件而设计。它具有高效、灵活和易用的特点,能够帮助用户在海量文件中准确地定位到目标文件,节省了大量手动翻阅文件夹的时间。这款软件尤其适用于...

    java编写的文件搜索器

    在Java编程领域,文件搜索器是一个实用的工具,它能够帮助用户快速查找并定位到指定目录下的特定文件或文件类型。这个项目展示了如何利用Java语言的丰富功能来实现这一目标。接下来,我们将深入探讨其中涉及的关键...

    一个多线程文件搜索器

    《一个多线程文件搜索器详解》 在计算机领域,文件搜索是日常操作中不可或缺的一环。传统的文件搜索工具往往依赖单线程进行,这在处理大量数据时可能会显得效率低下,尤其是在大型文件系统中。因此,多线程文件搜索...

    多线程字符串代码文件搜索器

    《多线程字符串代码文件搜索器》 在现代软件开发中,高效地处理大量数据是一项基本需求,尤其是在处理文件系统中的文本数据时。"多线程字符串代码文件搜索器"正是为了解决这一问题而设计的。这个工具是用VC(Visual...

    C#写的文件搜索器

    【标题】"C#写的文件搜索器"是一个基于C#编程语言开发的实用软件,用于在计算机中快速、高效地查找指定类型的文件。这个小工具能够帮助用户在大量的文件和文件夹中定位到他们需要的特定文件,极大地提高了工作效率。...

    QT写的文件搜索器(Designer窗体设计结合代码)

    在这个"QT写的文件搜索器"项目中,开发者结合了Qt Designer的设计功能和编程逻辑,构建了一个能够搜索指定路径下文件的应用程序。 首先,Qt Designer是Qt库的一部分,它提供了拖放式的图形界面设计环境。通过...

    简单文件搜索器的实现

    在IT领域,开发一个简单的文件搜索器是许多初学者和专业人士都可能会遇到的任务。这个"简单文件搜索器的实现"项目旨在教你如何构建一个能够快速查找计算机中特定文件的工具。我们将通过分析给出的源码文件来理解其...

    java文件搜索器

    使用java实现的一个文件搜索器,该搜素器能够自动读出电脑上面已有的盘,使用者可以通过选择指定盘,输入需要搜索的关键字进行搜索,也可以通过文件选择器进行选择,在指定的文件夹中进行搜索,且该过程可中断。

    快速文件搜索器 快速文件搜索器

    快速文件搜索器是一种高效能的计算机工具,设计用于帮助用户在海量的文件系统中迅速找到所需文件。在日常工作中,面对日益增长的文件数量,传统的操作系统内置的文件搜索功能往往显得力不从心,这就催生了快速文件...

    易语言文件搜索器

    《易语言文件搜索器》是一款基于易语言编程的实用工具,专用于在计算机中快速查找特定的文件。这款软件的核心功能在于其高效、简洁的文件搜索机制,为用户提供了便捷的文件定位服务。下面我们将详细解析这款软件的...

    java文件搜索器(完整)

    【Java文件搜索器】是一个基于Java编程语言实现的实用工具,它允许用户在计算机的各个磁盘或指定的文件夹中快速查找特定的文件。这个应用程序利用了Java强大的I/O和文件操作功能,为用户提供了一个方便的方式来定位...

    简单的文件搜索器

    【标题】:“简单的文件搜索器” 【描述】:在信息技术领域,文件搜索是日常工作中一个不可或缺的功能。一个简单的文件搜索器通常是指一个程序或工具,它允许用户在计算机上快速定位和查找特定的文件或文件夹。这个...

    文件搜索器多线程的搜索器

    标题中的“文件搜索器多线程的搜索器”指的是一个采用了多线程技术来提高文件搜索效率的应用程序。在IT领域,多线程是程序设计中的一个重要概念,它允许一个程序同时执行多个任务,以此提升程序性能,尤其是在处理...

    VC6.0 文件搜索器

    "VC6.0 文件搜索器"是一款模仿Windows操作系统自带搜索引擎的工具,专为用户提供快速、高效和精准的文件及文件夹查找服务。该程序利用Visual C++ 6.0开发,对于初学者而言,它是了解和学习编程技术,尤其是文件系统...

    精彩编程与编程技巧-VB中自制文件搜索器...

    ### 知识点:在VB中开发自制文件搜索器 #### 1. 项目概述 在Visual Basic(简称VB)环境中构建一个文件搜索工具,旨在帮助用户高效地查找指定驱动器及其子目录下的文件。本项目的核心功能包括: - 驱动器选择 ...

    超级实用的文件搜索器

    【标题】:“超级实用的文件搜索器” 在我们的日常工作中,高效地管理和寻找文件是必不可少的。传统的操作系统自带的文件搜索功能往往效率低下,不能满足快速查找的需求。这就是“超级实用的文件搜索器”应运而生的...

    android 文件搜索器

    【Android 文件搜索器】是一款专为Android平台设计的应用程序,旨在帮助用户快速、高效地在设备上查找指定的文件。这个工具可能包含了源代码,因此对于开发者来说,它不仅是一个实用工具,也是一个学习和研究的对象...

    多线程文件搜索器.zip

    《深入解析多线程文件搜索器》 在计算机科学领域,多线程技术是一种重要的并发执行方式,尤其在处理大量I/O操作时,如文件搜索。VC6.0中的MFC(Microsoft Foundation Classes)库提供了丰富的支持来创建多线程应用...

Global site tag (gtag.js) - Google Analytics