Java file directory list FAQ: How do I create a list of files in a directory using Java?
I use the Apache FileUtils class for a lot of needs like this, but here’s a quick example of a Java class that show how to create a list of all files in a directory using just the Java File class. Specifically, this example shows how to list all the files in a directory, store those filenames in a String array, and then print the array.
My Java directory “list files” class
Here’s the source code for this “list files in a directory” Java class:
import java.io.File;
import java.util.Arrays;
public class DirectoryTestMain
{
public static void main(String[] args)
{
// create a file that is really a directory
File aDirectory = new File("C:/temp");
// get a listing of all files in the directory
String[] filesInDir = aDirectory.list();
// sort the list of files (optional)
// Arrays.sort(filesInDir);
// have everything i need, just print it now
for ( int i=0; i<filesInDir.length; i++ )
{
System.out.println( "file: " + filesInDir[i] );
}
}
}
Discussion: Java directory files list example
I won’t get into a detailed discussion of this Java file/directory list example, but I will add a few points here to the comments that are shown in the code:
- This is a complete Java program. Just compile and run this class, and assuming that you have a directory named "C:/temp", you'll be able to get a listing of all the files in that directory.
- On Unix and Linux systems just specify the directory as normal, i.e., using something like
/tmpinstead of using the DOSC:/tempdirectory syntax. - If the directory name you specify doesn't really exist, this code will throw a
NullPointerException, so you have to be careful of that. - I just ran this code against my home directory on a Linux computer, and it does list all the "hidden" files in my home directory. ("Hidden files" are all the filenames that begin with a decimal, i.e., filenames like
.bash_profile.)
I can’t think of anything else to add right now, but if you have any questions or comments, just leave them in the comments section below and I'll get back with you.

