读书人

资料搜索程序

发布时间: 2012-06-30 17:20:12 作者: rapoo

文件搜索程序

基于文件的基本操作,编写了一个简单的文件搜索程序

?

1.界面

?

package fileFound;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;/** * 文件的查找登陆界面 *  * @author lenovo *  */public class FileFoundUI extends JFrame{public static void main(String args[]) {// 创建FileCopy对象FileFoundUI fc = new FileFoundUI();fc.showUI();}/** * 初始化窗口 */public void showUI(){//设置标题this.setTitle("文件统计器  v1.0");//设置窗体大小this.setSize(600,350);//创建流式布局器java.awt.FlowLayout fl=new java.awt.FlowLayout();this.setLayout(fl);//创建一个面板对象JPanel jp=new JPanel();//创建一个尺寸对象java.awt.Dimension di=new java.awt.Dimension(392,96);//设置面板的大小jp.setPreferredSize(di);//创建并给面板加上流式布局器java.awt.FlowLayout fl1=new java.awt.FlowLayout();jp.setLayout(fl1);//创建两个标签,创建两个文本框,一个按钮JLabel jl1=new JLabel("源文件路径:");final JTextField jt1=new JTextField(20);JLabel jl2=new JLabel("查找的内容:");final JTextField jt2=new JTextField(20);JButton jb=new JButton("开始查找");//将标签,文本行,按钮加到面板上去jp.add(jl1);jp.add(jt1);jp.add(jl2);jp.add(jt2);jp.add(jb);//把面板加到窗体this.add(jp);//创建一个多行文本框final JTextArea jta=new JTextArea(11,50);this.add(jta);// 创建一个滚动条JScrollPane jsp = new JScrollPane(jta);this.add(jsp);//窗体大小不可改变this.setResizable(false);//关闭时退出this.setDefaultCloseOperation(3);//将窗体显示出来this.setVisible(true);//给开始复制按钮安装动作监听器jb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String start="**********************************开始查找************************************\n";//将start写入多行文本框中jta.append(start);//得到源文件路径String str1=jt1.getText();//得到查找的内容String str2=jt2.getText();//创建一个FileFound对象FileFound ff=new FileFound();int count=ff.foundfile(str1, str2);//得到迭代器java.util.Iterator<String> ite=ff.getlist().iterator();while(ite.hasNext()){jta.append(ite.next()+"\n");}jta.append("                             查找完毕!!!    总共查找到:"+count+"个文件");
}});}}
?

?

?

?

?

2.查找的方法

?

package fileFound;/** * 文件查找 *  * @author lenovo *  */public class FileFound {// 定义一个队列,用来装入查找到得路径java.util.ArrayList<String> sal = new java.util.ArrayList<String>();/** * 查找文件 *  * @param path *            :查找文件范围的路径 * @param name *            :查找的内容 * @return:找到的个数 */public int foundfile(String path, String name) {// 计数器int count = 0;// 根据给定路径创建文件java.io.File file = new java.io.File(path);// 判断文件是否存在if (!file.exists()) {return 0;}// 将文件夹下的装入文件数组java.io.File[] fa = file.listFiles();if (fa == null) {System.out.println("文件夹不存在");return 0;}for (int i = 0; i < fa.length; i++) {// 得到文件的文件名String s1 = fa[i].getName();// 得到文件的绝对路径String s2 = fa[i].getAbsolutePath();// 如果给定的文件夹下有差查找内容int num = s1.indexOf(name);// 如果是真实文件if (fa[i].isFile()) {if (num >= 0) {count++;// 将路径装入队列sal.add("查找到一个文件其路径为:" + s2);}} else if (fa[i].isDirectory()) {count += foundfile(s2, name);}}return count;}/** * 得到装载文件路径的队列 *  * @return:装载文件路径的队列 */public java.util.ArrayList<String> getlist() {return sal;}}
?

?

3.界面效果图:


资料搜索程序

读书人网 >开源软件

热点推荐