2

我试图用来FileUtils.listFilesAndDirs显示给定路径中的所有文件和文件夹,但目前我的代码只获取文件并过滤掉给定路径中的目录。

    //Ask for the path to the directory
    System.out.println("Enter path: ");
    path = scanner.nextLine();
    File myFile = new File(path);   

    if(myFile == null || !myFile.exists()) {
        System.out.println("Bad directory path!");
        System.exit(-1);
    }

    //Make a filter that matches files and directories
    final IOFileFilter myFilter = new IOFileFilter() {  
        @Override
        public boolean accept(File dir, String name) {
            return true;
        }

        @Override
        public boolean accept(File file) {
            return true;

        }
    };

    //List files and folders in that directory
    Collection<File> listOfFiles = FileUtils.listFilesAndDirs(myFile, myFilter, null);

    for(File file : listOfFiles) {
        if(file.isDirectory()) {
            System.out.print("Directory: ");
        }
        else { 
            System.out.println("File: ");
        }

        System.out.print(file.getAbsolutePath());       
    }
4

2 回答 2

3

请记住,如果第三个参数为空,您将不会获得任何可以使用的文件夹:

//Use TrueFileFilter.TRUE to match all directories
TrueFileFilter.TRUE


FileUtils.listFilesAndDirs(myFile, TrueFileFilter.TRUE, TrueFileFilter.TRUE);
于 2014-03-19T13:47:58.057 回答
2

鉴于这种:

FileUtils.listFilesAndDirs(myFile, myFilter, null)

您需要为目录指定过滤器。从文档

如果此参数为空,则子目录将不包含在搜索中

于 2013-07-02T14:36:33.770 回答