文件搜索程序

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

 

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.界面效果图:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值