java编写一个文件查找器

来源:互联网 发布:u盘格式化数据恢复 编辑:程序博客网 时间:2024/06/04 19:07

我们学过文件File之后就想写一个文件搜索器我写了两个版本的搜索器,第一个是基于控制台的就是我的查找结果要显示在控制台上,这个比较适合初学者学习,另外我又写了一个基于界面的文件搜索器,用起来比较好看,在第二个版本中我使用了皮肤包。

      首先看第一个版本,花了不到几分钟就可以搞定的东西结果让我做了很长那个时间,原因是当时递归的时候把文件夹的名称当作了绝对路径给传了进去导致无法正常递归。。。。苍天!!带走我吧。。

public  void getInfo(){//创建输入对象,用于得到控制台的输入信息Scanner input=new Scanner(System.in);//提示System.out.println("请输入查找目录:");//获得输入 strMulu=input.next();System.out.println("请输入查找名称:");strSearchName=input.next();beginSearch(strMulu);}

上面是得到目录和查找对象,最关键的是下面的一个函数

 

 

public void beginSearch(String root){//用root创建一个根文件对象File rootFile=new File(root);//将根文件夹下的目录或者文件放入数组File[] subFiles=rootFile.listFiles();                //判断文件夹下的目录是否为空,或者文件夹下没有文件if(subFiles==null||subFiles.length==0){return;}        //对文件夹下的每个文件进行操作       for(int i=0;i<subFiles.length;i++){                        //如果子文件是一个文件if(subFiles[i].isFile()){//得到文件名称String FileName=subFiles[i].getName();//判断文件名称是否包含关键字if(FileName.contains(strSearchName)){//获得文件的绝对路径String path1=subFiles[i].getAbsolutePath();//将绝对路径加到队列list.add(path1);}}//如果是文件夹if(subFiles[i].isDirectory()){//得到文件夹名称String FilesName=subFiles[i].getName();//获得文件夹的绝对路径String path2=subFiles[i].getAbsolutePath();//判断文件名称是否包含关键字if(FilesName.contains(strSearchName)){//将绝对路径加到队列list.add(path2);}                           //将子文件夹递归调用,查询下一级文件夹   beginSearch(path2);}}}public static void main(String[] args) {FileSearch fl=new FileSearch();fl.getInfo();                //把队列中的字符串取出来并打印      for(int i=0;i<list.toArray().length;i++){System.out.println(list.get(i));}}

 

 

运行的结果为:

 具体的代码见附件

  • 大小: 115.8 KB
  • FileSearch.zip (958 Bytes)
  • 下载次数: 0
  • 查看图片附件
0 0
原创粉丝点击