我想实现一种方法,可以找到一个文件夹及其子文件夹中的所有文件,等等。
我已经通过递归实现了它,但是我不知道这是怎么回事。
有人能帮我吗?
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);
}
}
}
最佳答案
您需要对递归方法的每个调用都具有您在该调用中工作的目录。最小的更改应为:
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);
}
}
}