繁体   English   中英

在 for 循环中打印时的适当间距

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM