我想搜索目录及其子目录中的所有.txt文件。这是我到目前为止。
package com.gm.scratchpad;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static List<File> digFiles(File root, String typeOfFiles) {
ArrayList<File> files = new ArrayList<File>();
File[] files1 = root.listFiles();
return Arrays.asList(files1);
}
public static void main(String[] args) {
System.out.println("Hey, here are the files we dug!");
System.out.println(digFiles(new File("C:/development/scratchpad/test/vinvRoot"),null));
}
}
答案 0 :(得分:-1)
我建议你使用File.walkFileTree
。有关如何使用它的说明,请参阅here。
答案 1 :(得分:-1)
我不打算给你实际代码。这是一个应该有用的伪代码。这是最天真的实施方式。一旦您知道如何实施,您应该能够改进它:
List<File> findFiles(File directoryToSearch, String fileType) {
List<File> result = ...;
for each entry in directoryToSearch{
if (entry is a directory) {
result.addAll(findFiles(entry, fileType));
} else if (entry is a file and entry is of fileType) {
result.add(entry);
}
}
return result;
}
实际上,递归目录遍历很常见,并且已经有很多实用程序可以提供帮助。