[英]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目錄。 您只需在此數組上調用遞歸函數。 一個簡單的代碼模擬就像
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.