我想实现一个方法来查找文件夹及其子文件夹中的所有文件,等等...... 我通过递归实现了它,但我不知道出了什么问题。 有人能帮助我吗?
private void fileLister(){
File d = new File(adress);
File[] existingFiles =d.listFiles();
for(int i = 0;i<existingFiles.length;i++){
if(existingFiles[i].isDirectory()){
fileLister();
}
else{
List<File> templist = Arrays.asList(existingFiles);
allExsistingFiles.addAll(templist);
}
}
}
答案 0 :(得分:2)
您需要每次调用递归方法才能拥有该调用中正在使用的目录。最小的改变应该是:
private void fileLister(File directory){
File[] existingFiles =directory.listFiles();
for(int i = 0;i<existingFiles.length;i++){
if(existingFiles[i].isDirectory()){
fileLister(existinFiles[i]);
}
else{
List<File> templist = Arrays.asList(existingFiles);
allExsistingFiles.addAll(templist);
}
}
}
答案 1 :(得分:-1)
检查IT:
public void showAll(String directoryName, ArrayList<File> files) {
File dir = new File(directoryName);
File[] fL = dir.listFiles();
for (File file : fL) {
if (file.isFile()) {
files.add(file);
} else if (file.isDirectory()) {
listf(file.getAbsolutePath(), files);
}
}
}