2010-04-02 44 views
4

一键列出TXT文件。Java:单行列出目录中的Dirs?

import java.io.File; 
import java.io.FilenameFilter; 
... 
files = dir.listFiles(new FilenameFilter() { 
      public boolean accept(File dir, String name) { 
       return name.toLowerCase().endsWith(".txt"); 
       } 
      } 
     ); 

Source.

是否有一个班轮列出迪尔斯的目录?

+8

对于非常大的“one”值... – 2010-04-02 19:13:06

回答

5
public static void main (String[] args) throws Exception { 
    File dir = new File("yourDir"); 

    FileFilter fileFilter = new FileFilter() { 
     public boolean accept(File file) { 
      return file.isDirectory(); 
     } 
    }; 

    File[] files = dir.listFiles(fileFilter); 

    for (File f : files) 
     System.out.println(f.getName()); 
} 
3
import java.io.File; 
import java.io.FileFilter; 
... 
files = dir.listFiles(new FileFilter() { 
     public boolean accept(File pathname) { 
      return pathname.isDirectory(); 
     } 
    }); 

注意使用listFiles(FileFilter)而非listFiles(FilenameFilter)

4

这使用Commons IO,但确实是列出所有目录名的最简单方法。它还有一种更强大的过滤器组合,您可以将其用于其他目的:

String[] dirNames = new File("/Users/jonathan").list(DirectoryFileFilter.INSTANCE); 
for (String dirName: dirNames) 
    System.out.println("Directory Name: " + dirName);