java8 的files、path類相關文件遍歷API


Path的兩種初始化(應該還有別的方式)

Path file = new File(path).toPath();

Paths.get

判斷是文件、是目錄

Files.isRegularFile(file)

Files.isDirectory(file)

javadoc說,還有既不是文件也不是目錄的情況

Files.find

通過屬性和路徑篩選,可以篩選是文件,而路徑匹配 PathMatcher 樣式的。深度可以指定 integer max,無盡深度,或者限定1、2級深度。

PathMatcher 通過 FileSystem.getPathMatcher(String syntaxAndPattern) 獲取。按javadoc介紹,有glob和regex兩種方式。使用了glob的,沒有使用regex的。 glob的支持 {*.gz,*.json} 這樣的匹配方式。

還有 Files.walk, directorystream的api調用。這三個api可以遍歷目錄樹,比file listfiles手寫遞歸用高效多了。

返回的流,可以使用skip、limit,進行分頁,然后調用foreach,對結果遍歷處理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM