这是我参与8月更文应战的第16天,活动概况查看:8月更文应战

用Java仿一个低配版的Everything软件

“Everything” 是什么?

“Everything” 是 Windows 上一款查找引擎,它能够根电脑怎样截图据文件名快速定文件和文件夹方位。

不像 W电脑黑屏indows 内置查找,”Everything” 默许闪现电脑上每个文件命令行界面和文件夹 (就如其名 “Everythi软件ng”)。

您在查找框输入的关键词将会选择闪现电脑的文件和文件夹。

总的来说,Everything是一款免费的能够快速检索文电脑怎样截图件、文件夹的,并且占用资源比较少的Windows应用软件。

制造低配版 “Everything”

咱们今天就运用Java来制造一个低配版”Ev命令行erything”吧!

先上主函数:

public static void main(String[] args) {
 System.out.println("*********************");
 System.out.println("Welcome To Everything");
 System.out.println("*********************");
 
 System.out.println("请输入要查找的文件名:");
 Str软件测试ing fileName=scanner.next();
 
 System.out.windows10println("文件名称t文件途径t文件大小t文件毕竟修改时间");
 
 File[] Drive_letters=File.list命令行进入指定目录Roots();
 for(File dl:Drive_letters)
  {
   find(dl,fileName)java语言;
  }
}

这儿暂时不运用图形化界面,先是命令行界面,最初步简略输出提示语。

然后输入要查找的文件名或者文件夹名,然后由于EveWindowsrything是只能在Windows下工作,所以咱们只考虑Windows环境下查找windows是什么意思文件。(窃喜~)

而Windows的文件体系可能有多个根目录,所以咱们用到File.listRoots(),下面来介绍一下FiWindowsle.listRoots()。

介绍File.listRoots()

Java 支撑零个或多个文件体系。 而每个文件体系都有一个 {@code root} 目录,从中能够拜访该文件体系中的一切其他文件。 例如,Windows 渠道为每个活动驱动器都有一个根目录; UNIX 渠道有一个根目录,即 {@code “/”}。 可用文件体系根聚会遭到各种体系级操作的影响,例如可移动媒体的刺进或弹出以及物理或虚拟磁盘驱动器的断命令行快捷键开或卸载。

此办法回来一个 {@code File} 的方针数组,这些方针标明可用文件电脑怎样连接wifi体系的根目录软件库。 能够保证本电脑开不了机怎样办地机器上物理存在的任何文件的标准的途径名都能够以该办法回来的其间一个根(例如Windows电脑黑屏渠道下的C、D、E)初步命令行界面

运用File.listRoots()就能够得到电脑的文件体系的各个根目录,然后分别在各个根目录寻觅电脑咱们要找的文件。

下面看一看咱们写的查找文件的函数。

public static void find(Fil电脑怎样恢复出厂设置e file, St电脑开不了机怎样办ring fileName) {
   if (null != file) {
     if (file.isDirectory(命令行窗口快捷键)) {
       File[] files = file.listFiles();
       if (null != files && files.length > 0) {
         for (File f : files) {
           find(f, fileName);
          }
        }
​
      } else {
​
       String fName = file.getName();
​
​
       if (fName.contains(fileName)) {
         String fileResultN软件技术专业ame = filjava就业培训班e.g命令行快捷键etName();
         String fileResultPath = file.getAbsolutePath();
         long fileResultSize = file.length();
         long fileResultModify = file.ljava面试题astModified();
​
         System.out.println(fileResultName + "t" + fileResultPath + "t" + fileResultSize + "t" + fileResultModify);
        }
      }
    }
  }
​

先是判别文件或文件夹是否为空,这些文件或文件夹可能是隐藏的Java或者是被维护的。

然后判别这个file是否是文件夹,假设是文件夹,就运用file电脑黑屏.listFiles()获取里边一切文件,得到一个文件类型数组。

然后判别文件夹是否为空,假设为空,则不进去。假设不为空,遍历文件类型数组,然后每次都运用递归继续查找。

假设这个file不是文件夹,就不需求递归了。

咱们比对这个文件的文件名是否与要查找的一起,假设一起就打印文件或文件夹的文件名文件夹名、肯定途径、文件文件夹大小和终命令行窗口快捷键究修改时间。

The End..

See you~