首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 文件模糊查找:File.list + 字符串 contains/indexOf 實現類 SQL LIKE

     編輯:程式設計綜合問答

核心 API

  • file.isDirectory() / isFile() 區分類型。
  • file.getName() 獲取文件名。
  • name.contains("A") 或 name.indexOf("A") >= 0 模糊匹配。

遞歸遍歷示例


public void search(File dir, String keyword, List result) {
    File[] files = dir.listFiles();
    if (files == null) return; // 無權限或非目錄
    for (File f : files) {
        if (f.isDirectory()) {
            search(f, keyword, result);
        } else if (f.getName().contains(keyword)) {
            result.add(f);
        }
    }
}

// 調用
List found = new ArrayList<>();
search(new File("C:/"), "A", found);
found.forEach(f -> System.out.println(f.getAbsolutePath()));

現代替代:Files.walk (Java 8+)


List found = Files.walk(Paths.get("C:/"))
    .filter(p -> p.getFileName().toString().contains("A"))
    .collect(Collectors.toList());

性能提示

  • C 盤根目錄文件極多,遞歸耗時久,建議限定搜索深度或指定子目錄。
  • 大規模搜索考慮 Lucene / Everything SDK 建立索引。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved