我知道如何創建列表這段代碼我如何獲得目錄和子目錄中的所有文本文件?
包含所有在目錄中的文件,但如果我有目錄下有文件和子文件目錄和子目錄具有文件和子文件子目錄等。
我如何創建列表包含目錄和子目錄中的所有文件?
我知道如何創建列表這段代碼我如何獲得目錄和子目錄中的所有文本文件?
包含所有在目錄中的文件,但如果我有目錄下有文件和子文件目錄和子目錄具有文件和子文件子目錄等。
我如何創建列表包含目錄和子目錄中的所有文件?
你可以這樣做:
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 –