Java File List
π
2026-06-22 | π Java
Java File list() Method | Novice Tutorial
[ Java File](#)
* * *
`File.list()` is an instance method provided by the `java.io.File` class in Java, used to retrieve a list of all files and subdirectories in a specified directory. This method is very useful for scenarios that require traversing or processing directory contents.
### Method Syntax
public String[] list()
### Method Return Value
The `list()` method returns a string array (`String[]`) containing the following:
* If the calling object represents a valid directory, it returns the names of all files and subdirectories in that directory
* If the calling object does not represent a directory or an I/O error occurs, it returns `null`
* If the directory is empty, it returns an empty array
* * *
## Basic Usage Example
## Example
import java.io.File;
public class ListFilesExample {
public static void main(String[] args){
// Create a File object representing a directory
File directory =new File("C:/MyFolder");
// Get the list of files and subdirectories in the directory
String[] files = directory.list();
// Check if the list was successfully obtained
if(files !=null){
System.out.println("Directory contents:");
for(String file : files){
System.out.println(file);
}
}else{
System.out.println("The specified path is not a directory or an error occurred");
}
}
}
* * *
## Method Overloaded Version
The `File` class also provides another version of the `list()` method that accepts a filter:
## Example
public String[] list(FilenameFilter filter)
### FilenameFilter Interface
`FilenameFilter` is a functional interface containing only one method:
## Example
boolean accept(File dir, String name)
### Using Filter Example
## Example
import java.io.File;
import java.io.FilenameFilter;
public class FilteredListExample {
public static void main(String[] args){
File directory =new File("C:/MyFolder");
// List only .txt files
String[] textFiles = directory.list(new FilenameFilter(){
@Override
public boolean accept(File dir, String name){
return name.endsWith(".txt");
}
});
// Java 8+ can use Lambda expressions for shorthand
String[] textFiles = directory.list((dir, name)-> name.endsWith(".txt"));
if(textFiles !=null){
System.out.println("Text file list:");
for(String file : textFiles){
System.out.println(file);
}
}
}
}
* * *
## Notes
1. **Permission Issues**: If the program doesn't have permission to read the directory, the `list()` method will return `null`
2. **Symbolic Links**: The `list()` method follows symbolic links and may return the actual file/directory names pointed to by the links
3. **Performance Considerations**: For directories containing a large number of files, the `list()` method may consume significant memory
4. **Relative Paths**: The returned filenames contain only the name portion, not the full path
* * *
## Alternative Methods
In Java 7 and above, it's recommended to use the `Files` class and `DirectoryStream` to handle directory contents, as they provide a more modern and flexible approach:
## Example
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class NioListExample {
public static void main(String[] args)throws IOException{
Path dir = Paths.get("C:/MyFolder");
try(DirectoryStream stream = Files.newDirectoryStream(dir)){
for(Path file : stream){
System.out.println(file.getFileName());
}
}
}
}
* * *
## Summary
The `File.list()` method is a simple and straightforward way to retrieve directory contents, suitable for simple file system operations. For more complex requirements, consider using `FilenameFilter` or switching to the more powerful features provided by the NIO.2 API.
[ Java File](#)