package iotest;
import java.awt.*;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
public class SearchFile
{
public static void main(String[] args)
{
SearchFileFrame frame = new SearchFileFrame();
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class SearchFileFrame extends JFrame
{
public SearchFileFrame()
{
this.setTitle("SearchFileFrame");
setSize(600,450);
Container con = this.getContentPane();
SearchFilePanel p = new SearchFilePanel();
con.add(p);
}
}
class SearchFilePanel extends JPanel
{
private JLabel fileName = new JLabel("查找文件: ");
private JLabel directorName = new JLabel("查找范围: ");
private JLabel process = new JLabel("查找进度... ");
private JButton search = new JButton("开始查找");
private JTextField openfield = new JTextField();
private JTextField savefield = new JTextField();
private JTextArea area = new JTextArea();
private int number =0;
public SearchFilePanel()
{
setLayout(new BorderLayout());
area.setLineWrap(true);
JScrollPane s = new JScrollPane(area);
search.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
area.setText("");
Thread st = new Thread(new Runnable()
{
public void run()
{
searchFile(new File(savefield.getText()),openfield.getText());
}
});
st.start();
}
catch(Exception ee)
{}
}
});
JPanel openpanel = new JPanel();
openpanel.setLayout(new BorderLayout());
openpanel.add(fileName,BorderLayout.WEST);
openpanel.add(openfield,BorderLayout.CENTER);
JPanel savepanel = new JPanel();
savepanel.setLayout(new BorderLayout());
savepanel.add(directorName,BorderLayout.WEST);
savepanel.add(savefield,BorderLayout.CENTER);
JPanel control = new JPanel();
control.setLayout(new BorderLayout());
control.add(openpanel,BorderLayout.NORTH);
control.add(savepanel,BorderLayout.SOUTH);
JPanel searchPanel = new JPanel();
searchPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
searchPanel.add(search);
searchPanel.add(process);
JPanel NorPanel = new JPanel();
NorPanel.setLayout(new BorderLayout());
NorPanel.add(control,BorderLayout.NORTH);
NorPanel.add(searchPanel,BorderLayout.SOUTH);
add(NorPanel,BorderLayout.NORTH);
add(s,BorderLayout.CENTER);
}
public void searchFile(File file,String fileName) //核心递归算法
{
if(file.exists())
{
File[] f = file.listFiles();
if(f!=null)
{
for(int i =0 ;i<f.length;i++)
{
process.setText(f[i].getPath());
if(f[i].isDirectory())
{
searchFile(f[i],fileName);
}
else
{
String temp = f[i].getName();
if(temp.indexOf(fileName)!=-1)
{
area.append(f[i].getPath()+"\r\n");
}
}
}
}
}
}
}
分享到:
相关推荐
1.打开 相同文件查找器(MD5).exe 2.点击“开始分析” 3.在弹出的对话框中选择要查找的文件夹,并点击“确定” 4.程序分析完后,左面会穷举该文件夹下所有文件,以及其MD5值,右面会分别显示相同的文件个数及文件路径...
免费的重复文件查找工具 免费的重复文件查找工具
Duplicate Cleaner Pro v3.2.5 绿色中文破解版是一款功能非常强大的重复文件查找工具,这个是无需注册、无需安装的单文件绿色便携版!程序可以帮助你快速的查找重复的图片、音乐等各种文件,可以根据字节、MD5、SHA...
Linux文件查找技巧
重复文件查找) 重复文件查找) 重复文件查找)
“重复文件查找王”,一款为您以最快的速度找出指定目录中内容重复的文件列表,便于您据此清理文件,减少重复文件对磁盘空间的占用。本工具的主要功能: 提供7种匹配方法,我们称之为匹配准确度的7层,它们是: ...
文件查找神器Everything,带领您高效查找所需文件,绿色轻便
大文件查找,用到了一个设计模式,还有一些好用的WindowsAPI
Duplicate File Finder Plus 是一款快速重复文件查找器,基于文件内容快速查找驱动器上的重复文件,您可删除不需要的文件恢复宝贵的磁盘空间,降低管理成本,避免不必要的混淆,100% 的准确结果,你会爱上它的!...
同名 文件查找助手
查找范围是当前目录与子目录,目标文本文件,输入字符串就可进行快速查找文件
重复文件查找器,高速查找你硬盘上重复的文件
重复文件查找器
快速的全盘文件查找程序
Large Files Finder 是一款方便实用的电脑大文件查找软件,能帮助用户闪电般查找计算机电脑中查找大量占用磁盘空间的大体积文件,根据威航软件园的实际测试,100万个文件扫描速度不到一分钟时间即可完成,扫描结果...
C#文件查找(按内容、文件名称查找)源码
文件查找工具~~windows查找,如果系统查找功能损坏可用文件查找工具~~windows查找
速度较快的VC 文件查找类实例,里面包括两个DEMO,可以快速查找系统指定的文件,将文件查找操作简单封装,使用传递参数查找路径和文件匹配格式(可以继承该类的 match 方法实现自己的匹配算法)到find方法,查询结果...
重复文件查找工具 依靠MD5值寻找相同文件 并对其进行操作 删除 移动
可以自动扫描硬盘,显示出最大的一百个文件,详细资料包括:文件名称、文件夹名称、文件大小、最后修改时间。如果想释放空间,或想知道哪个文件占用了过多的空间,该软件可轻易助您所想。此外,您还可以选择另一个...