簡體   English   中英

讀取大量文件名的最有效方法是什么?

[英]What is the most effective way to read names of a lot of files?

我需要獲取文件夾中許多文件夾和文件的名稱。 我嘗試使用FileUtils ,但與 Java 的本機Files.walk()相比它太慢了,因此我無法使用它。

但我什至不能使用 java 的Files.walk()因為當它試圖讀取一個隱藏文件時,它拋出Exception並停止(隱藏文件無法避免,有人說這是一個設計錯誤 - Files.walk 跳過目錄) . 有什么不同的方法嗎? 我現在不知道該怎么辦。


請在您的代碼中執行以下操作。-

import org.apache.commons.io.filefilter.HiddenFileFilter;

我給你舉個例子——

package test;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

import org.apache.commons.io.filefilter.HiddenFileFilter;

public class ListHiddenAndVisibleFilesTest {

    public static void main(String[] args) throws IOException {
        File directory = new File(".");

        System.out.println("Hidden Files:");
        File[] hiddenFiles = directory.listFiles((FileFilter) HiddenFileFilter.HIDDEN);
        for (File hiddenFile : hiddenFiles) {
            System.out.println("hidden file: " + hiddenFile.getCanonicalPath());
        }

        System.out.println("\nVisible Files:");
        File[] visibleFiles = directory.listFiles((FileFilter) HiddenFileFilter.VISIBLE);
        for (File visibleFile : visibleFiles) {
            System.out.println("visible file: " + visibleFile.getCanonicalPath());
        }
    }
}

這給出了類似的結果

Hidden Files:
hidden file: C:\kum\workspace\test\hidden1.txt
hidden file: C:\kum\workspace\test\hidden2.txt

Visible Files:
visible file: C:\kum\workspace\test\.classpath
visible file: C:\kum\workspace\test\.project
visible file: C:\kum\workspace\test\visibleFile.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM