`
Coco_young
  • 浏览: 127638 次
  • 性别: Icon_minigender_1
  • 来自: 湖南长沙
社区版块
存档分类
最新评论

文件搜索器的总结

阅读更多

最近在学习了文件对象的部分内容之后,掌握了对磁盘上文件的遍历,做了一个文件搜索器。

1.功能说明:

   实现了通过输入文件名(带扩展名)对磁盘上所有待搜索的真实文件的搜索,以及对所有搜索结果的统计。

2.图片展示:

 

3.技术分析:

  (1).使用了Swing组件里的菜单,使界面更为简洁.

  

// 加入菜单栏
		javax.swing.JMenuBar jmb = new javax.swing.JMenuBar();
		javax.swing.JMenu jm = new javax.swing.JMenu("控制");
		javax.swing.JMenuItem item = new javax.swing.JMenuItem("开始");

  (2).搜索功能的实现主要是对所选磁盘上的所有文件进行遍历,然后用其中的真实文件的名字与输入的名字比较,相同就输出到输出框上,其中对磁盘遍历是采用了递归的算法,具体代码如下:

  

package yfr.Fsearch315;

import java.awt.FlowLayout;
import java.io.File;

import javax.swing.JFrame;
/**
 * 文件搜索器界面类
 * @author Administrator
 *
 */
public class SearchUI extends JFrame {

	public static javax.swing.JTextField txt;
	public static javax.swing.JTextArea result;
	public static int count = 0;
	private String[] root ;
	public static javax.swing.JComboBox jcom ;

	public static void main(String[] args) {

		SearchUI UI = new SearchUI();

		UI.showUI();
	}

	/**
	 * 显示界面的方法
	 */
	public void showUI() {
		// 设置窗体属性
		this.setTitle("Files Searching");
		this.setSize(300, 320);
		this.setDefaultCloseOperation(3);
		this.setResizable(false);
		// 设置布局管理器
		FlowLayout fl = new FlowLayout();
		this.setLayout(fl);
		// 加入菜单栏
		javax.swing.JMenuBar jmb = new javax.swing.JMenuBar();
		javax.swing.JMenu jm = new javax.swing.JMenu("控制");
		javax.swing.JMenuItem item = new javax.swing.JMenuItem("开始");
		this.setJMenuBar(jmb);
		jmb.add(jm);
		jm.add(item);

		// 创建3个JLabel 用以提示用户
		javax.swing.JLabel lab1 = new javax.swing.JLabel("输入 ");
		javax.swing.JLabel lab2 = new javax.swing.JLabel("输出 ");
		javax.swing.JLabel lab3 = new javax.swing.JLabel("请选择盘符 ");
		// 创建文本框,用来输入文件名
		this.add(lab1);
		txt = new javax.swing.JTextField(20);
		this.add(txt);
		// 创建文本框,用来打印搜索结果
		this.add(lab2);
		result = new javax.swing.JTextArea(10, 20);
		result.setEditable(true);
		result.setBackground(java.awt.Color.white);
		//创建一个滚动条对象
		javax.swing.JScrollPane spn = new javax.swing.JScrollPane(result);
		this.add(spn);
	//	this.add(result);
		//创建一个面板对象
		javax.swing.JPanel select = new javax.swing.JPanel();
		java.awt.Dimension dim = new java.awt.Dimension(100,20);
		this.add(select);
		listroot();
		jcom = new javax.swing.JComboBox(root);
		select.add(lab3);
		select.add(jcom);

		

		// 设置可见
		this.setVisible(true);

		// 创建一个搜索监听器
		SearchListener slis = new SearchListener();
		// 给菜单选项加上监听器
		item.addActionListener(slis);
		//给下拉框加上监听器
		jcom.addActionListener(slis);

	}
	/**
	 * 获得机器的所有盘符
	 */
	public void listroot(){
		final int rootnumber;//机器的盘符数
		
		File opp = new File("");
		File[] rootlist = opp.listRoots();
		rootnumber = rootlist.length;
		root = new String[rootnumber];
		for(int i=0;i<rootlist.length;i++){
			this.root[i] = rootlist[i].getAbsolutePath();
		}
		for(int i=0;i<rootlist.length;i++){
			System.out.println(root[i]);
		}
	}
}

 

package yfr.Fsearch315;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;

/**
 * 文件搜索器的监听器类
 * @author Administrator
 *
 */
public class SearchListener implements java.awt.event.ActionListener{

	private String name;
	private String root="C:\\";
	@Override
	public void actionPerformed(ActionEvent e) {
		this.name = SearchUI.txt.getText();
		this.root = (String)SearchUI.jcom.getSelectedItem();
		System.out.println(root);
		SearchUI.count = 0;	
		if(e.getActionCommand().equals("开始")){
		//listroot();
		File opp = new File(root);
		seek(opp);
		SearchUI.result.append("共找到"+SearchUI.count+"个文件!");
		}
	}
	/**
	 * 获得系统根目录,并在每个根目录下搜索名为name的文件
	 * @param s
	 * @return 每个名为name的文件的绝对路径
	 */
	/*private void listroot(){
		
		//获得所有系统的根目录
		File[] fs = opp.listRoots();
		for(int i=0;i<fs.length;i++){
			seek(fs[i]);
		}
	}*/
	
	/**
	 * 搜索文件的方法
	 */
	private void seek(File opp){
		File[] files = opp.listFiles();
		if(files==null||files.length==0)
			return;
		for(int i=0;i<files.length;i++){
			if(files[i].isDirectory()){
				seek(files[i]);
			}else if(files[i].isFile()&&(files[i].getName().equals(this.name))){
				System.out.println(files[i].getAbsolutePath());
				SearchUI.result.append(files[i].getAbsolutePath()+"\r\n");
				SearchUI.count++;
			}
		}
		return;
	}
	

}

 

 

   4.待解决的问题:

      (1).目前还是只能在某个磁盘上进行搜索,还不能具体选择某个文件夹进行搜索。

      (2).还不能实现搜索过程的暂停。

 

 

  • 大小: 13.9 KB
0
1
分享到:
评论

相关推荐

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

    总结来说,文件搜索器作为一个高效的文件管理工具,它能够帮助用户以各种方式快速定位和管理文件,提升工作效率。通过使用这类工具,用户不仅可以轻松应对日常的文件查找需求,还能进行更复杂的文件管理和操作。对于...

    光速文件批量搜索器V4.2

    总结起来,"光速文件批量搜索器V4.2"是一款高效、精准且易用的文件搜索工具,能够帮助用户在海量文件中快速定位目标,提升工作效率。通过其丰富的搜索条件和批量操作功能,无论是在工作还是生活中,都能为用户带来极...

    易语言文件搜索器

    总结,易语言文件搜索器通过易语言的编程特性,结合高效的搜索算法和用户友好的界面设计,实现了快速查找文件的功能。通过理解易语言的基本语法和文件操作,我们可以进一步改进和扩展这个工具,以适应更复杂的文件...

    超级实用的文件搜索器

    总结来说,“超级实用的文件搜索器”是一款高效、便捷的文件管理工具,通过快速的全盘扫描和精确的搜索功能,解决了用户在大量文件中查找信息的难题。无论是工作还是个人使用,它都能极大地提高文件检索效率,是现代...

    多线程文件搜索器

    总结来说,多线程文件搜索器是通过并发处理来提升文件搜索效率的一种技术,它结合了多线程的并发优势和文件搜索的策略,为用户提供了快速、灵活的文件查找体验。在实际开发中,我们需要关注线程安全、性能优化以及...

    文件搜索器的简单实现

    ### 文件搜索器的简单实现 #### 一、Java `File` 类详解 在Java中,`File` 类位于 `java.io` 匢中,用于封装有关文件和目录的信息。通过这个类,我们可以对文件和目录执行多种操作,例如创建、删除、重命名等。 #...

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

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

    文件搜索器

    总结来说,文件搜索器是提高工作效率的重要工具,其背后的原理和实现涉及到了计算机系统、算法和数据结构等多个领域的知识。掌握这些知识,不仅可以帮助我们更好地理解和使用现有的文件搜索工具,还能够启发我们开发...

    文件搜索软件.zip

    总结起来,【文件搜索软件.zip】压缩包内的Listary是一款针对Windows操作系统的优秀文件搜索工具,它具备高速搜索、拼音缩写、快捷启动和轻量级运行等特性,并且完全免费。对于经常需要处理大量文件、追求效率的用户...

    Listary文件搜索神器

    **Listary:高效文件搜索与管理的神器** Listary,被誉为文件搜索的神器,是针对Windows操作系统设计的一款强大工具,特别适用于程序员和其他需要频繁查找、管理文件的用户。这款软件的核心功能在于提供快速、准确...

    C# 文件搜索程序

    总结,"C# 文件搜索程序"结合了C#语言的核心特性,如文件操作、多线程、异步编程以及用户界面交互,实现了高效且用户友好的文件搜索功能。开发者在实现这类程序时,需要充分理解并运用这些技术,以确保程序的性能和...

    搜索本地文件工具

    总结来说,本地文件搜索工具是提升电脑用户工作效率的得力助手,通过高效检索技术与多样化功能,帮助用户在庞杂的文件系统中快速定位目标文件。选择一款适合自己工作需求的搜索工具,并熟练掌握其使用技巧,将大大...

    文件管理器 不错的源码

    3. 文件搜索:提供搜索功能,帮助用户快速定位特定的文件或文件夹,通常支持按文件名、大小、类型、修改日期等条件进行筛选。 4. 文件属性查看:显示文件的详细信息,如大小、创建日期、修改日期、文件类型等。 5....

    易语言本地文件搜索(支持不同类型和不同文件夹及全盘)

    《易语言本地文件搜索技术详解》 在计算机编程领域,文件搜索是一项基本且重要的功能,它使得用户能够高效地在海量文件中定位所需的目标。易语言作为一款中国本土的编程语言,提供了简单易懂的语法,让开发者可以...

    迅雷网盘搜索器单文件绿色版.rar

    总结来说,迅雷网盘搜索器单文件绿色版,作为一个针对性强、操作简便、功能专一的实用小工具,极大地方便了广大用户在迅雷网盘中获取所需资源的过程。它通过简单易用的界面、快速的搜索响应、丰富的筛选设置,帮助...

    自定义文件管理器

    总结来说,自定义文件管理器是提升个人或团队工作效率的重要工具,它不仅提供了标准文件管理功能,还能根据用户需求定制各种特性。通过学习和开发这样的工具,我们可以更好地理解和掌握文件系统的运作机制,同时也能...

    迅雷资源搜索器

    迅雷狗狗搜索在功能上更为全面,提供了文件大小、上传时间、种子健康度等多种高级筛选选项,而迅雷资源搜索器在这些方面可能还不具备足够的竞争力。尽管如此,对于日常的使用来说,核心的关键词搜索功能已经可以满足...

    基于QT+Linux/Windows的简易文件管理器

    **基于QT+Linux/Windows的简易文件管理器** 在IT领域,开发一款跨平台的文件管理器是一项常见的任务...在实际使用中,这个文件管理器可以满足基本需求,但对于高级功能如搜索、文件预览等,可能需要进一步扩展和定制。

    资源搜索器,任何迅雷资源搜索

    总结来说,"资源搜索器,任何迅雷资源搜索"是一个利用迅雷网络和P2P技术来搜索并下载互联网资源的工具。通过这个工具,用户可以方便地找到各类文件,但同时也需要注意文件的合法性与安全性。在享受便捷的同时,务必...

Global site tag (gtag.js) - Google Analytics