我写了下面的代码 我想改进我的代码中的所有子树,仅适用于 2 层我想将我的代码更改为所有层的迭代代码。
for(int p=0;p<f3.length;p++){
if(f3[p].isDirectory()){
System.out.println(f3[p]+"*****DIRECTORY*****");
File[] fsub=f3[p].listFiles();
for(int i=0;i<fsub.length;i++){
if(fsub[i].isDirectory()){
System.out.println(fsub[i]+" DIRECTOY");}
else System.out.println(fsub[i]+" FILE");
}
}
else System.out.println(f3[p]+"--FILE");
}
最佳答案
您可以采用递归方法。下面建议的要点是,我们在遍历目录树时不断调用 printLevel
。当我们点击一个文件时,递归就会停止,这意味着目录树中该点以下没有更多文件。
public void printLevel(File file) {
if (!file.isDirectory()) {
System.out.println(file.getName() + "--FILE");
return;
}
System.out.println(file.getName() + "*****DIRECTORY*****");
File[] subs = file.listFiles();
for (File sub : subs) {
printLevel(sub);
}
}
关于java - 如何在java中打印所有目录和文件以及所有子目录和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51964214/