[英]Proper spacing while printing in for loop
我正在开发一个以正确格式显示所有文件夹和子文件夹的程序,但我无法在它们之间保持适当的间距
public void listf(String directoryName) {
File directory = new File(directoryName);
File[] fList = directory.listFiles();
for (File file : fList) {
if (file.isDirectory()) {
for (File file1 : fList) {
System.out.print("\t");
}
System.out.println(file.getName());
listf(file.getAbsolutePath());
}
}
}
这是我对该问题的解决方案:
public void listf(String directoryName){
recursiveListf(directoryName,2,0);
}
public void recursiveListf(String directoryName, int depth, int tabs) {
if(depth<=0){
return;
}
if(tabs<0){
return;
}
File directory = new File(directoryName);
File[] fList = directory.listFiles();
for (File file : fList) {
if (file.isDirectory()) {
recursiveListf(directoryName+"/"+file.getName(), depth-1, tabs+1);
}else{
for(int i = 0; i < tabs; i++){
System.out.print("\t");
}
System.out.println(file.getAbsolutePath());
}
}
}
深度描述了您希望文件夹结构显示的深度。
如果您的意思是说您想要指示文件夹深度的缩进,那么这是一个递归问题,每次调用自身都会添加另一个空格。
关于理解递归问题的好视频
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.