
1. 使用Files.list()迭代目錄及其子目錄檔案
Files.list()可以迭代目錄及其子目錄檔案
Files.list(Paths.get(".")) //當前目錄
.forEach(System.out::println);
輸出:
.\filename1.txt
.\directory1
.\filename2.txt
.\Employee.java
2. 使用 filter運算式過濾檔案
過濾器函式參考,isRegularFile表示普通檔案
Files.list(Paths.get("."))
.filter(Files::isRegularFile) //過濾器:只保留普通檔案,過濾掉檔案目錄
.forEach(System.out::println);
輸出結果如下:
.\filename1.txt
.\filename2.txt
.\Employee.java
也可以使用lambda運算式進行過濾
Files.list(Paths.get("."))
.filter(s -> s.startsWith("file")) //過濾器:只保留以file開頭的檔案及目錄
.forEach(System.out::println);
3. 使用 Files.newDirectoryStream()迭代目錄及其子目錄檔案
另一種更靈活的遍歷目錄的方式Files.newDirectoryStream(),如果我們的目錄檔案又深又多,DirectoryStream可以使迭代目錄的速度更快,
Files.newDirectoryStream(Paths.get("."))
.forEach(System.out::println);
輸出結果與Files.list()效果一致
.\filename1.txt
.\directory1
.\filename2.txt
.\Employee.java
4. 使用Files.newDirectoryStream()迭代指定檔案后綴名的檔案
我們可以為Files.newDirectoryStream()傳遞第二個引數,指定過濾條件,比如以java(結尾)為后綴名的檔案
Files.newDirectoryStream(Paths.get("."),
path -> path.toString().endsWith(".java"))
.forEach(System.out::println);
Output:
.\Employee.java
5. 遍歷目錄內的隱藏檔案
要查找所有隱藏檔案,可以在過濾器中使用lambda運算式file -> file.isHidden(),或者,使用java8的方法參考,
final File[] files = new File(".").listFiles(file -> file.isHidden());
//or
final File[] files = new File(".").listFiles(File::isHidden);
歡迎關注我的博客,里面有很多精品合集
- 本文轉載注明出處(必須帶連接,不能只轉文字):字母哥博客,
覺得對您有幫助的話,幫我點贊、分享!您的支持是我不竭的創作動力! ,另外,筆者最近一段時間輸出了如下的精品內容,期待您的關注,
- 《手摸手教你學Spring Boot2.0》
- 《Spring Security-JWT-OAuth2一本通》
- 《實戰前后端分離RBAC權限管理系統》
- 《實戰SpringCloud微服務從青銅到王者》
- 《VUE深入淺出系列》
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/139426.html
標籤:Java
上一篇:WEB攻擊手段及防御-擴展篇
