Java仿一個低配版的Everything軟件

      網友投稿 941 2025-04-01

      用Java仿一個低配版的Everything軟件

      “Everything” 是 Windows 上一款搜索引擎,它能夠基于文件名快速定文件和文件夾位置。

      不像 Windows 內置搜索,“Everything” 默認顯示電腦上每個文件和文件夾 (就如其名 “Everything”)。

      您在搜索框輸入的關鍵詞將會篩選顯示的文件和文件夾。

      總的來說,Everything是一款免費的可以快速檢索文件、文件夾的,并且占用資源比較少的Windows應用軟件。

      我們今天就使用Java來制作一個低配版"Everything"吧!

      先上主函數:

      public static void main(String[] args) { System.out.println("*********************"); System.out.println("Welcome To Everything"); System.out.println("*********************"); System.out.println("請輸入要查找的文件名:"); String fileName=scanner.next(); System.out.println("文件名稱\t文件路徑\t文件大小\t文件最后修改時間"); File[] Drive_letters=File.listRoots(); for(File dl:Drive_letters) { find(dl,fileName); } }

      這里暫時不使用圖形化界面,先是命令行界面,最開始簡單輸出提示語。

      然后輸入要查找的文件名或者文件夾名,然后因為Everything是只能在Windows下運行,所以我們只考慮Windows環(huán)境下查找文件。(竊喜~)

      而Windows的文件系統(tǒng)可能有多個根目錄,所以我們用到File.listRoots(),下面來介紹一下File.listRoots()。

      Java 支持零個或多個文件系統(tǒng)。 而每個文件系統(tǒng)都有一個 {@code root} 目錄,從中可以訪問該文件系統(tǒng)中的所有其他文件。 例如,Windows 平臺為每個活動驅動器都有一個根目錄; UNIX 平臺有一個根目錄,即 {@code “/”}。 可用文件系統(tǒng)根集會受到各種系統(tǒng)級操作的影響,例如可移動媒體的插入或彈出以及物理或虛擬磁盤驅動器的斷開或卸載。

      此方法返回一個 {@code File} 的對象數組,這些對象表示可用文件系統(tǒng)的根目錄。 可以保證本地機器上物理存在的任何文件的規(guī)范的路徑名都可以以該方法返回的其中一個根(例如Windows平臺下的C、D、E)開始。

      使用File.listRoots()就可以得到電腦的文件系統(tǒng)的各個根目錄,然后分別在各個根目錄尋找我們要找的文件。

      用Java仿一個低配版的Everything軟件

      下面看一看我們寫的查找文件的函數。

      public static void find(File file, String 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 fileResultName = file.getName(); String fileResultPath = file.getAbsolutePath(); long fileResultSize = file.length(); long fileResultModify = file.lastModified(); System.out.println(fileResultName + "\t" + fileResultPath + "\t" + fileResultSize + "\t" + fileResultModify); } } } }

      先是判斷文件或文件夾是否為空,這些文件或文件夾可能是隱藏的或者是被保護的。

      然后判斷這個file是否是文件夾,如果是文件夾,就使用file.listFiles()獲取里面所有文件,得到一個文件類型數組。

      然后判斷文件夾是否為空,如果為空,則不進去。如果不為空,遍歷文件類型數組,然后每次都使用遞歸繼續(xù)查找。

      如果這個file不是文件夾,就不需要遞歸了。

      我們比對這個文件的文件名是否與要查找的一致,如果一致就打印文件或文件夾的文件名\文件夾名、絕對路徑、文件\文件夾大小和最后修改時間。

      The End…

      See you~

      Java Windows

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:為什么我沒點鼠標第一張幻燈片自動跳到第二張了(為什么幻燈片不能點擊跳下一張)
      下一篇:面試遇到Tomcat,你需要知道這些常識
      相關文章
      国产亚洲真人做受在线观看| 亚洲国产另类久久久精品黑人| 亚洲色WWW成人永久网址| 亚洲精品久久久www | 国产V亚洲V天堂无码久久久| 伊人婷婷综合缴情亚洲五月| 国产午夜亚洲精品午夜鲁丝片| 亚洲国产一区二区三区| 亚洲爆乳AAA无码专区| 亚洲欧美日韩久久精品| 久久亚洲精品专区蓝色区| 亚洲偷自精品三十六区| 色婷五月综激情亚洲综合| 亚洲成人在线免费观看| 亚洲国产精品成人综合色在线婷婷| 亚洲综合图片小说区热久久| 亚洲欧洲中文日产| 亚洲最大成人网色香蕉| 亚洲中文无码mv| 亚洲av无码片vr一区二区三区| 亚洲码和欧洲码一码二码三码| 亚洲精品国产首次亮相| 九九精品国产亚洲AV日韩| 亚洲AⅤ视频一区二区三区| 亚洲欧洲一区二区三区| 2048亚洲精品国产| 久久亚洲国产精品一区二区| 亚洲福利视频一区| 亚洲成电影在线观看青青| 中文字幕亚洲男人的天堂网络| 亚洲人成色77777在线观看| 精品国产亚洲AV麻豆| 亚洲午夜爱爱香蕉片| 久久国产亚洲精品麻豆| 日产亚洲一区二区三区| 亚洲影视自拍揄拍愉拍| 国产精品亚洲av色欲三区| 亚洲人成电影网站国产精品 | 国产精品久久亚洲一区二区| 国产精品亚洲高清一区二区| 亚洲av之男人的天堂网站|