簡體   English   中英

在Java中的文件夾中查找特定文件

[英]Finding a specific file in a folder in java

我需要在文件夾中找到特定文件,例如info.txt。 問題是我不知道文件處於什么級別。 例如,文件可以在子文件夾或子文件夾的子文件夾中。

因此,這意味着我必須進行遞歸操作。...或者有一種簡單的方法可以完成此任務。 我正在使用JDK 1.5。

您可以使用apache commons-io FileUtils 假設您要遞歸地在目錄messyfolder下搜索文件foo

Collection<File> results = FileUtils.listFiles(new File("messyfolder"), 
                                               new NameFileFilter("foo"), 
                                               TrueFileFilter.INSTANCE)

您不必使用遞歸,但這是一個好主意。 您可以使用java中的File對象來幫助您。 您將要使用的幾個關鍵事項:

  • isDirectory()函數。 相當自我解釋。
  • 如果File對象是目錄,則必須使用listFiles()函數。 返回文件對象的數組,這些文件是文件AND目錄。 您只需在此數組上調用遞歸函數。
  • 您可能還需要研究FilenameFilter界面來幫助您。

一個簡單的代碼模擬就像

File findFile(String fileName, File[] files){
    for(File file : files){
        if(file.isDirectory) File f = findFile(fileName, file.listFiles());
        if(f!=null) return f;
        if(file.getName.equals(fileName)) return file;
    }
    return null;
}

IIRC Java 7具有一些目錄遍歷實用程序。 您也可以使用堆棧或隊列來遍歷目錄樹而無需遞歸。

暫無
暫無

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

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