简单文件搜索器的实现

   

                                    简单文件搜索器的实现

 

  平时存取文件的常常会按照一定的方式存放,这样会提高我们下次查找文件的效率,或者选择无序的存放,毫不考虑的存放,在存放的时候花的时间几乎是零,但为我们以后再次查看该文件带来了麻烦,由此,文件搜索应用应运而生

  不管使用的是什么系统,搜索功能始终是系统的一项核心功能。window系统的开始菜单最下面是程序和文件的搜索框,文件浏览器的右上角是文件搜索框。iOS和Android 给搜索单独分配了一个屏幕。由此可见文件及程序搜索功能是在系统中举足轻重的作用。

  此次用java代码编写的简单文件搜索器只是实现器最基础功能,即在指定文件夹目录通过关键字搜索列出所有包含关键字的文件。并可将搜索内容的结果保存到文件中。

 

简单文件搜索器的主界面



 

 

 

 保存搜索结果信息文件



 

保存的文件



 

 

下面介绍实现功能的要点

 

打开和保存文件用到了文件选择器JFileChooser对象

 

 

fileChooser = new JFileChooser();//create a FileChooser
fileChooser.setDialogType(JFileChooser.OPEN_DIALOG);//set dialog type is OPEN_DIALOG
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);//set file selection mode is FILES_AND_DIRECTORIES
 

 

获取文件夹的路径

 

 

int t = fileChooser.showOpenDialog(null);
if(t==JFileChooser.APPROVE_OPTION){//如果点击的是确定
	//获取文件的绝对路径
	path = fileChooser.getSelectedFile().getAbsolutePath();
	jtf_filePath.setText(path);
}
 

 

读入目录下的所有文件

 

// 构造文件对象
java.io.File file = new java.io.File(path);
// 将目录所有文件存入数组中
java.io.File[] files = file.listFiles();
 

 

判断文件名是否含有关键字

使用indexOf()方法

 

for (int i = 0; i < files.length; i++) {
	// 如果是一个真实的文件
	if (files[i].isFile()) {
	String fpath = files[i].getAbsolutePath();
	// 搜索含关键字的文件名
	if (fpath.indexOf(keyword) >= 0) {
		jta_res.append("找到文件:" + fpath + "\r\n");
	}
}

 

 

保存文件 JFileChooser过滤器过滤所需要的文件类型(txt)

// create a FileChooser
JFileChooser fileChooser = new JFileChooser(".");
// 去掉显示所有文件这个过滤器
fileChooser.setAcceptAllFileFilterUsed(false);
// 添加txt文件的过滤器
fileChooser.addChoosableFileFilter(new TxtFileFilter("txt"));

 

 

创建一个TxtFileFilter过滤器类继承FileFilter,重写其中的accept(File file)和getDescription()方法

/**
	 * Anonymous Inner Class
	 * 
	 * FileFilter only txt
	 * 
	 * @author YangKang
	 * 
	 */
	class TxtFileFilter extends FileFilter {
		// Filter String
		private String ext;

		public TxtFileFilter(String ext) {
			this.ext = ext;
		}

		@Override
		public boolean accept(File file) {
			// 首先判断该目录下的某个文件是否是目录,如果是目录则返回true,即可以显示在目录下。
			if (file.isDirectory()) {
				return true;
			}

			// 使用lastIndexOf()方法来获得这个文件的扩展名
			String fileName = file.getName();
			int index = fileName.lastIndexOf('.');
			if (index > 0 && index < fileName.length() - 1) {
				String extension = fileName.substring(index + 1).toLowerCase();
				if (extension.equals(ext))
					return true;
			}
			return false;

		}

		@Override
		public String getDescription() {
			// 将过滤器选择文件的扩展名限制为txt
			if (ext.equals("txt")) {
				return "文本文件(*.txt)";
			}
			return "";
		}

	}

 

以上是和大家分享的简单文件搜索器的实现示例,希望大家多多支持和指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值