我用的FileUtils.listFiles,这个看api写是获得文件,试了下果然,不能获得目录列表,要获得目录列表该怎么写?
我的代码如下:
File dir=new File("e:/test/");
File[] files = FileUtils.convertFileCollectionToFileArray(FileUtils
.listFiles(dir, new IOFileFilter() {
public boolean accept(File file) {
return accept(file, "");
} public boolean accept(File file, String s) {
return file.isDirectory();
}
}, new IOFileFilter() {
public boolean accept(File file, String s) {
return true;
} public boolean accept(File file) {
return true;
}
}));
System.out.println(files.length);
最后files.length 是0

解决方案 »

  1.   


    File file = new File("c:\\");
    File[] files = file.listFiles(new FilenameFilter() { /**
     * 测试指定文件是否应该包含在某一文件列表中。
     * 
     * @param dir
     *            被找到的文件所在的目录。
     * @param name
     *            文件的名称。
     * @return 当且仅当该名称应该包含在文件列表中时返回 true;否则返回
     *         false。返回true时,该文件将被允许添加到文件列表中,否则不能添加到文件列表中。
     */
    public boolean accept(File dir, String name) {
    File f = new File(dir, name);
    if (f.isDirectory())
    return true;// 如果是文件夹,返回true。
    else
    return false;// 否则返回false。
    }
    });
      

  2.   

    你这个是仅一级子目录,我要的是能得到目录下所有的目录结构,包括子目录下的子目录,
    如果io.File能直接做到就不会去用FileUtils啦...
      

  3.   

    import java.io.File;public class FileList { public static void main(String[] args) {
    String path = "c:/";
    File dir = new File(path);
    if (!dir.exists() || !dir.isDirectory())
    System.out.println("路径不存在");
    else {
    System.out.println("该路径文件列表如下:");
    System.out.println(dir.getPath());
    listDirectories(dir, "  ");
    }
    } private static void listDirectories(File dir, String indent) {
    File[] dirs = dir.listFiles();
    for (File f : dirs) {
    if (f.isDirectory()) {
    System.out.println(indent + f.getName());
    listDirectories(f, indent + "  ");
    }
    }
    }
    }