亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按文件名對文件路徑數組排序

按文件名對文件路徑數組排序

繁星coding 2022-11-30 13:34:51
我用來directory.listFiles()從給定的目錄結構中遞歸地獲取文件列表。為此,我嘗試使用以下代碼,但它們都不起作用。    Arrays.sort(fList, Comparator.comparing(File::getName));     Arrays.sort(fList, NameFileComparator.NAME_COMPARATOR);文件應從所有子目錄中按升序排列。
查看完整描述

3 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

File 是一個可比較的類,默認情況下按字典順序對路徑名進行排序。只需使用,

 Arrays.sort(fList);

如果你想對它們進行不同的排序,你可以定義你自己的比較器。


查看完整回答
反對 回復 2022-11-30
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

如果你想在樹結構中遞歸地對所有文件路徑進行排序,你可以嘗試Files.walk使用sortedJava 8 流:


List<String> files = Files.walk(Paths.get("/tmp"))

                         .filter(Files::isRegularFile) // Check you have only file names

                         .map(Path::toString) // map to string

                         .sorted() // sort

                         .collect(Collectors.toList()); // create list

如果你想要不區分大小寫的排序:


List<String> files = Files.walk(Paths.get("d:/tmp"))

                         .filter(Files::isRegularFile) // Check you have only file names

                         .map(Path::toString) // map to string

                         .sorted(Comparator.comparing(String::toLowerCase)) // sort case insensitive

                         .collect(Collectors.toList()); // create list


查看完整回答
反對 回復 2022-11-30
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

要列出目錄和子目錄中的所有文件,請使用Apache Commons FilesUtil.listFiles方法


Collection<File> fCollection = FileUtils.listFiles(directory, null, true);

File[] fList = fCollection.toArray(new File[fCollection.size()]);

然后對數組進行排序,您可以使用


Arrays.sort(fList);


查看完整回答
反對 回復 2022-11-30
  • 3 回答
  • 0 關注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號