【问题标题】:recursive directory listing in javajava中的递归目录列表
【发布时间】:2018-05-23 12:53:43
【问题描述】:

//该方法不在控制台中运行。 我也尝试在 main 中初始化它,但没有任何效果 目的是写一个递归的方法,查找并列出目录和子目录,没有目录就停止。

package Folders;

import java.io.File;
//lists
//isFile
/**/

public class Main {

    public static void main(String[] args) {
        // Object directoryName;
        // TODO Auto-generated method stub
        // String listFilesAndFilesSubDirectories a = new
        // listFilesAndFilesSubDirectories();
        /*
         * listFilesAndFilesSubDirectories a = new
         * listFilesAndFilesSubDirectories(); System.out.println(); File file1 =
         * new File("C:\\"); String[] files = file1.list(); for(String string :
         * files) { System.out.println(string); }
         */
    }

    public class listFilesAndFilesSubDirectories {
        public void listFilesAndFilesSubDirectories(String directoryName) {
            // directoryName = "C:\\";
            File file1 = new File("C:\\");
            String[] files = file1.list();
            for (String string : files) {
                System.out.println(string);
            }
            File directory = new File(directoryName);

            // get all the files from a directory
            File[] fList = directory.listFiles();
            for (File file : fList) {
                if (file.isFile()) {
                    System.out.println(file.getAbsolutePath());
                    System.out.println("fdadfa");
                } else if (file.isDirectory()) {
                    listFilesAndFilesSubDirectories(file.getAbsolutePath());
                } else {
                    break;
                }
            }
        }
    }
}

【问题讨论】:

  • 正如您在代码示例中看到的那样,您的 main 方法中的所有内容都被注释掉了,这可以解释为什么“它不起作用”......您尝试的代码中确实是这种情况吗?
  • 需要按程序编辑问题。
  • 不是我试过的另一件事
  • 你能更具体地谈谈“没有工作”吗?究竟有什么事情没有发生您期望或想要发生的事情?发生了什么(如果有的话) 发生了您没有预料到或不想要的事情?您收到任何错误消息吗?你的电脑起火了吗?
  • 另外,你正在构造一个 listFilesAndFilesSubDirectories 对象,但从不调用它的 listFilesAndFilesSubDirectories 方法(方法名称的选择非常糟糕 - 与类同名的方法通常是构造函数,所以这是非常混乱)所以实际上程序什么都不做。

标签: java list directory


【解决方案1】:

要递归打印目录中的文件名,请按照以下给出的方法更改您的方法:-

public static void listFilesAndFilesSubDirectories(File directoryName) throws Exception {

    for(File file : directoryName.listFiles()) {
        if(file.isDirectory())
            listFilesAndFilesSubDirectories(file);
        else if(file.isFile())
            System.out.println(file.getName());
    }
}

【讨论】:

  • 感谢@fvu 的评论。 @Tomar 你的问题到底是什么?
猜你喜欢
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 2013-10-26
  • 2010-10-21
相关资源
最近更新 更多