`
Chang0501
  • 浏览: 23760 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

简单文件搜索器的实现

阅读更多

一、功能介绍

      这个文件搜索器可以选择在各个磁盘目录下对所给出的文件(目录文件和实体文件)进行搜索,并且在文本域中显示输出结果。以下是功能演示的结果。

 

输入查找文件名,并选择磁盘路径


 

 

查找目录文件 


 

 

查找实体文件
 

 

 

二、技术分析

在文件搜索器中,主要的用到的是文件知识和递归算法,我们可以逐个分析。

1、文件

      在Java中,File是一种类,那么它所对应的对象则是磁盘中存在的文件,我们通过创建一个文件对象,并且让它指向所要操作的某个文件,就可以对这个文件进行一系列的读写操作。这就是File类的意义。在这里我们需要注意一个问题:我们通过构造器如new File("fileName")创建File对象时,仅仅是在JVM内存中生成了一个File对象,这是与磁盘上的文件没有任何关系,仅当调用这个对象的其他方法时,这个对象才会指向磁盘上制定的文件。

      因此定义File对象的目的是为了对文件对象进行操作,有关文件操作的几个重要函数如下所示:

boolean exists():判断File对象指向的文件是否存在;

String getName():得到文件的名字(不带路径的名字);

boolean isDirectory():判断File对象指向的文件是否为目录文件;

boolean isFile():判断File对象指向的文件是否为实体文件;

long length():指向File对象指向文件的长度,以byte计,如指向目录则返回0;

File[] listFile():将File对象指向的文件下一级的所有目录文件和实体文件作为 一个数组返回;如果File文件是一个实体文件则返回null值。

2、递归算法

     递归算法是一个用起来方便又容易出错的问题,自己对这个问题也不能运用自如,但是有两点建议:一、在使用递归的时候记住两个原则:明确递归的终止条件,弄懂递归的对象。二、正因为递归具有终止条件和相似性,所以绝大多数的递归问题都可以转化为循环问题来进行解决,所以在把握不大的时候可以考虑使用循环来解决。

 

三、问题分析

      这个简单的文件搜索器只能满足基本的搜索要求,就是目录文件和实体文件,不像Windows的搜索栏那样,通过文件包涵的一些名字来进行查找。这个也就使得在查找实体文件的时候必须输入文件的扩展名(实体文件的名字包涵它的扩展名)。另一个问题是搜索时不能暂停,在学习了线程之后便可以解决。所以在以后完善文件搜索器的时候可以在两个方面进行改进:搜索功能和搜索速度,使查找更为便利,如只要输入文件的一部分名称便能够搜索出相应的一些文件;查找速度更加快捷,由于递归的算法时间代价较大,可以尝试通过循环或者一些好的搜索算法进行改进。对应的jar文件已经发到附件中了,里面有.java的文件,还希望有兴趣的朋友多多指教。

 

 

 

  • 大小: 23.3 KB
  • 大小: 56.7 KB
  • 大小: 35 KB
0
1
分享到:
评论

相关推荐

    文件搜索器的简单实现

    对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