`
什么世道
  • 浏览: 219512 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

简单文件搜索器的实现

阅读更多

   

                                    简单文件搜索器的实现

 

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

  不管使用的是什么系统,搜索功能始终是系统的一项核心功能。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 "";
		}

	}

 

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

  • 大小: 40.3 KB
  • 大小: 30.9 KB
  • 大小: 60.1 KB
分享到:
评论

相关推荐

    文件搜索器的简单实现

    对java File类的详细分析,以及实现在本地资源里搜索文件的方法,还有部分相关实现代码

    P2P种子搜索器 v7.0.3 云播穿透版.zip

    软件主要用来种子搜索器,可在瞬间搜遍全球ED2k网络资源,简单便捷的搜索到ED2K网络上共享的海量影音娱乐,学习资料等资源。支持各种资源的搜索,包含影视,图片,文字,音乐,种子等各种文件类型。软件界面美观简洁...

    Android简单文件管理器

    Android简单的文件管理器,实现复制、粘贴、新建、搜索等功能

    C#写的Windows文件资源管理器

    3.实现了主窗体左边驱动器树形视图(显示各驱动器及内部各文件夹列表)、右边文件列表视图(显示当前文件夹下所包含的文件和下一级文件夹)的显示,以及两者的联动显示。左右窗体间设有分隔条,拖动可改变左右窗体大小...

    Android Studio实现文件管理器,源代码详细注释

    搜索的原理很简单,就是关键词筛选,`contains()`方法判断是否包含关键词,将for循环得到的列表中每一个文件对象都放入File数组中,再重新设置适配器。 `file.createNewFile()`方法用来新建文件,

    基于Android的文件管理器设计与实现+毕业论文

    一个简单的文件管理器首先需要浏览文件(文件夹)、显示路径以及对目录的一些基 本操作(如:新建、删除、粘贴等);当选中一个文件时,提示用户有关文件操作的菜单, 如:打开、复制、剪切、重命名和新建等;在...

    基于C++编写搜索文件工具+源代码

    本工具具有能在电脑上搜索你输入的文件名的文件.为初级学习者提供源代码.是一个很好的学习VC++的工具.

    一个go语言实现的简单搜索引擎

    一个go语言实现的简单搜索引擎 类似于数据库的表一样按字段进行存储 支持倒排索引字段,正排索引字段,仅仅储存不进行检索的字段 倒排索引支持 完全匹配的字符串(类似ID,ISBN等需要完全匹配的属性) 分词类型 ...

    Java--实现简单词法分析器.zip

    在eclipse、Java环境下实现简单词法分析器: 1.输入:待词法分析的txt文档路径 2.输出: ① 单词串:每一个单词串均为一个WordString对象,所有单词串存放在List中(wordString) ② 符号表:存放在List中...

    文件管理器程序开发研究

    一个简单的文件管理器首先需要浏览文件(文件夹)、显示路径以及对目录的一些基 本操作(如:新建、删除、粘贴等);当选中一个文件时,提示用户有关文件操作的菜单, 如:打开、复制、剪切、重命名和新建等;在...

    Goto 桌面搜索

    2、 XLib库,主要是实现各种非UI功能的设计比如字符串特殊处理,编码转换、加密解密、内存池、多线程/线程池、文本/二进制文件、XML、PROFILE、进程间IO等处理、SOCKET/URL、HTTP服务器等。 ——Goto将UI和XLib合并...

    简单搜索引擎,实现了拼写检查、倒排索引 、文档排序

    简单搜索引擎,实现了拼写检查、倒排索引 、文档排序。 HW10.py: python2版本的拼写检查 HW10_PY3.py: python3版本的拼写检查 daopaisuoyin.py: 倒排索引(python3版) 主要代码是Correct.py,main.py,其他...

    实现词法分析器

    利用Lex工具实现词法分析器,识别所有单词,能将源程序转化为单词流 设计符号表,当然目前符号表项还只是词素等简单内容,但符号表的数据结构,搜索算法,词素的保存等等都可以考虑了。 保留字的处理等问题也可考虑...

    文件分割器(宇宙豪华版)

    Z-FileSplitter (文件离合器) 版本 V1.0 软件授权 免费 权利和限制 本软件为免费共享软件,可任意传播,但请不要对本软件有任何形式的修改。 不能用于商业目的的分发本软件。如捆绑,销售,集成等。 如有任何...

    jwheatsheaf:JavaFX文件选择器

    提供了FileChooser和DirectoryChooser类,它们委托给每个平台上操作系统的默认文件选择器实现。 这与可用的文件选择器抽象形成对比,后者提供了一个非本地文件选择器,该文件选择器在所有平台上的行为均相同。 尽管...

    Windows平台下的文件恢复工具

    3、Recuva可以在搜索被删除文件后通过主界面的过滤编辑框中的内容来过滤要恢复的文件,选项页中可以切换是否包括系统隐藏文件及零字节文件。 4、根据译者的经验,针对某些目录结构太凌乱及很长时间没有整理过的驱动...

    solr 企业搜索引擎教程

     快速和小的过滤器实现  支持自动热启的用户级别的缓存 1.2.6 复制  能够将使用 rsync 传输时改变的索引部分有效的发布  使用拉策略(Pull Strategy)来简化增加搜索器  可配置的发布间隔能够允许对时间线和...

    四大搜索神器

    4、大黄蜂网络下载助理 HAV_down 是基于多项分布式集群文件搜索的网络文件查找辅助下载工具,HAV_down通过HTTP、ED2K、P2P网络对各类资源进行扫描、收集、有效性验证,从而实现互联网络文件只要存在,就可以被找到和...

Global site tag (gtag.js) - Google Analytics