Skip to main content

How to List Files and Subdirectories in a Directory?

--
Here an example uses File class to retrive all files and subdirectories under the root.
public static void main(String[] argv){
    File dir = new File("c:\\");
    String[] children = dir.list();
    if (children != null) { 
      for (String filename: children) {
        out.println(filename);
      }
    }
    else {
      out.println("No File Found.");
    }
}
  
Here is an example showing how to return subdirectories only. From java.io.File Java API doc, a list of files can also be retrieved as array of File objects.
class DirectoryFileFilter implements FileFilter
{
  public boolean accept(File file) {
 return file.isDirectory();
  }
}
public class ListSubdirectory {
  public static void main(String[] argv){

    File dir = new File("c:\\");
    File[] files = dir.listFiles(new DirectoryFileFilter());
    if (files != null) {
      for (File file: files) {
        out.println(file.getName());
      }
    } 
    else {
      out.println("No Subdirectory Found.");
    }
  }
}
Here is an example to retrive a set of document file which given file extensions.
class MyDocFileFilter implements FileFilter
{
  private final String[] myDocumentExtensions 
               = new String[] {".txt", ".doc", ".html", "htm"};

  public boolean accept(File file) {
  
 if (!file.isFile())
  return false;

    for (String extension : myDocumentExtensions) {
      if (file.getName().toLowerCase().endsWith(extension))
        return true;
    }
    return false;
  }
}

public class ListMyDocuments {
     
  public static void main(String [] argv){
    File dir = new File("c:\\");
    File[] files = dir.listFiles(new MyDocFileFilter());
    if (files != null) {
      for (File file: files) {
        out.println(file.getName());
      }
    } 
    else {
      out.println("No File Found.");
    }
  }

}

Comments