最近在学习了文件对象的部分内容之后,掌握了对磁盘上文件的遍历,做了一个文件搜索器。
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
分享到:
相关推荐
总结来说,文件搜索器作为一个高效的文件管理工具,它能够帮助用户以各种方式快速定位和管理文件,提升工作效率。通过使用这类工具,用户不仅可以轻松应对日常的文件查找需求,还能进行更复杂的文件管理和操作。对于...
总结起来,"光速文件批量搜索器V4.2"是一款高效、精准且易用的文件搜索工具,能够帮助用户在海量文件中快速定位目标,提升工作效率。通过其丰富的搜索条件和批量操作功能,无论是在工作还是生活中,都能为用户带来极...
总结,易语言文件搜索器通过易语言的编程特性,结合高效的搜索算法和用户友好的界面设计,实现了快速查找文件的功能。通过理解易语言的基本语法和文件操作,我们可以进一步改进和扩展这个工具,以适应更复杂的文件...
总结来说,“超级实用的文件搜索器”是一款高效、便捷的文件管理工具,通过快速的全盘扫描和精确的搜索功能,解决了用户在大量文件中查找信息的难题。无论是工作还是个人使用,它都能极大地提高文件检索效率,是现代...
总结来说,多线程文件搜索器是通过并发处理来提升文件搜索效率的一种技术,它结合了多线程的并发优势和文件搜索的策略,为用户提供了快速、灵活的文件查找体验。在实际开发中,我们需要关注线程安全、性能优化以及...
### 文件搜索器的简单实现 #### 一、Java `File` 类详解 在Java中,`File` 类位于 `java.io` 匢中,用于封装有关文件和目录的信息。通过这个类,我们可以对文件和目录执行多种操作,例如创建、删除、重命名等。 #...
### 知识点:在VB中开发自制文件搜索器 #### 1. 项目概述 在Visual Basic(简称VB)环境中构建一个文件搜索工具,旨在帮助用户高效地查找指定驱动器及其子目录下的文件。本项目的核心功能包括: - 驱动器选择 ...
总结来说,文件搜索器是提高工作效率的重要工具,其背后的原理和实现涉及到了计算机系统、算法和数据结构等多个领域的知识。掌握这些知识,不仅可以帮助我们更好地理解和使用现有的文件搜索工具,还能够启发我们开发...
总结起来,【文件搜索软件.zip】压缩包内的Listary是一款针对Windows操作系统的优秀文件搜索工具,它具备高速搜索、拼音缩写、快捷启动和轻量级运行等特性,并且完全免费。对于经常需要处理大量文件、追求效率的用户...
**Listary:高效文件搜索与管理的神器** Listary,被誉为文件搜索的神器,是针对Windows操作系统设计的一款强大工具,特别适用于程序员和其他需要频繁查找、管理文件的用户。这款软件的核心功能在于提供快速、准确...
总结,"C# 文件搜索程序"结合了C#语言的核心特性,如文件操作、多线程、异步编程以及用户界面交互,实现了高效且用户友好的文件搜索功能。开发者在实现这类程序时,需要充分理解并运用这些技术,以确保程序的性能和...
总结来说,本地文件搜索工具是提升电脑用户工作效率的得力助手,通过高效检索技术与多样化功能,帮助用户在庞杂的文件系统中快速定位目标文件。选择一款适合自己工作需求的搜索工具,并熟练掌握其使用技巧,将大大...
3. 文件搜索:提供搜索功能,帮助用户快速定位特定的文件或文件夹,通常支持按文件名、大小、类型、修改日期等条件进行筛选。 4. 文件属性查看:显示文件的详细信息,如大小、创建日期、修改日期、文件类型等。 5....
《易语言本地文件搜索技术详解》 在计算机编程领域,文件搜索是一项基本且重要的功能,它使得用户能够高效地在海量文件中定位所需的目标。易语言作为一款中国本土的编程语言,提供了简单易懂的语法,让开发者可以...
总结来说,迅雷网盘搜索器单文件绿色版,作为一个针对性强、操作简便、功能专一的实用小工具,极大地方便了广大用户在迅雷网盘中获取所需资源的过程。它通过简单易用的界面、快速的搜索响应、丰富的筛选设置,帮助...
总结来说,自定义文件管理器是提升个人或团队工作效率的重要工具,它不仅提供了标准文件管理功能,还能根据用户需求定制各种特性。通过学习和开发这样的工具,我们可以更好地理解和掌握文件系统的运作机制,同时也能...
迅雷狗狗搜索在功能上更为全面,提供了文件大小、上传时间、种子健康度等多种高级筛选选项,而迅雷资源搜索器在这些方面可能还不具备足够的竞争力。尽管如此,对于日常的使用来说,核心的关键词搜索功能已经可以满足...
**基于QT+Linux/Windows的简易文件管理器** 在IT领域,开发一款跨平台的文件管理器是一项常见的任务...在实际使用中,这个文件管理器可以满足基本需求,但对于高级功能如搜索、文件预览等,可能需要进一步扩展和定制。
总结来说,"资源搜索器,任何迅雷资源搜索"是一个利用迅雷网络和P2P技术来搜索并下载互联网资源的工具。通过这个工具,用户可以方便地找到各类文件,但同时也需要注意文件的合法性与安全性。在享受便捷的同时,务必...