我知道如何创建列表这段代码我如何获得目录和子目录中的所有文本文件?
包含所有在目录中的文件,但如果我有目录下有文件和子文件目录和子目录具有文件和子文件子目录等。
我如何创建列表包含目录和子目录中的所有文件?
我知道如何创建列表这段代码我如何获得目录和子目录中的所有文本文件?
包含所有在目录中的文件,但如果我有目录下有文件和子文件目录和子目录具有文件和子文件子目录等。
我如何创建列表包含目录和子目录中的所有文件?
你可以这样做:
protected java.util.List<File> setDirMap(File inputDir) {
if (!inputDir.isDirectory()) {
throw new IllegalArgumentException("Input File is not a directory");
}
Set<File> ans = new HashSet<File>();
ans.add(inputDir);
File[] dir = inputDir.listFiles(new FileFilter() {
@Override
/**
* Returns true if pathname is a directory. False if not
*/
public boolean accept(File pathname) {
if (pathname.isDirectory()) {
return true;
} else {
return false;
}
}
});
ans.addAll(Arrays.asList(dir));
for (File current : dir) {
ans.addAll(setDirMap(current));
}
return new ArrayList<File>(ans);
}
这将返回所有目录和子目录。然后,您可以检查任何你想要的
试试这个代码的每个目录,这个使用递归....
import java.io.File;
import java.util.ArrayList;
public class FindIt {
private ArrayList<String> arList = new ArrayList<String>();
public void find(String s) {
File f = new File(s);
File[] fArr = f.listFiles();
for (File x : fArr) {
if (x.isFile()) {
if (x.getName().endsWith(".txt")) {
arList.add(x.getName());
}
else {
continue;
}
}
else {
find(x.getAbsolutePath());
}
}
}
public static void main(String[] args) {
FindIt f = new FindIt();
f.find("D:\\xtop");
for (String fileName : f.arList) {
System.out.println(fileName);
}
}
}
谢谢大家。我会测试代码,我希望它的工作。 – Mesho
@MesharyAlaoshan你的欢迎.... –
您应指定什么编码您使用的语言... – arkascha
已propably被回答过了: http://stackoverflow.com/questions/13444701/recursively-find-all-text-files-in-directory –