java.io.File listFiles()

Description

On this document we will be showing a java example on how to use the listFiles() method of File Class. This method returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname.

If this abstract pathname does not denote a directory, then this method returns null. Otherwise an array of File objects is returned, one for each file or directory in the directory. Pathnames denoting the directory itself and the directory’s parent directory are not included in the result. Each resulting abstract pathname is constructed from this abstract pathname using the File(File, String) constructor. Therefore if this pathname is absolute then each resulting pathname is absolute; if this pathname is relative then each resulting pathname will be relative to the same directory.

There is no guarantee that the name strings in the resulting array will appear in any specific order; they are not, in particular, guaranteed to appear in alphabetical order.

Note that the Files class defines the newDirectoryStream method to open a directory and iterate over the names of the files in the directory. This may use less resources when working with very large directories.

Throws:

SecurityException – If a security manager exists and its SecurityManager.checkRead(String) method denies read access to the directory

Method Syntax

public File[] listFiles()

Method Argument

Data Type Parameter Description
N/A N/A N/A

Method Returns

This method returns an array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname. The array will be empty if the directory is empty. Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.

Compatibility

Requires Java 1.2 and up

Java File listFiles() Example

Below is a java code demonstrates the use of listFiles() method of File class. The example presented might be simple however it shows the behaviour of the listFiles() method of File class. Because the list() method returns an array of String the denotes the filenames inside the directory if and only if the abstract pathname denotes directory, thus we have first put a check if the file is a directory or not. It wouldn’t make sense to just blindly list down the filenames without making sure that the pathname is a directory because the returned value would be null. Make sure to have it checked out to avoid unnecessary issues in using this method.

package com.javatutorialhq.java.examples;

import java.io.File;
import java.io.IOException;

/*
 * This example source code demonstrates the use of  
 * listFiles() method of File class.
 * 
 */

public class FileListFilesExample {

	public static void main(String[] args) {

		// initialize File object
		File file = new File("C:javatutorialhq");

		// check if the specified pathname is directory first
		if(file.isDirectory()){
			//list all files on directory
			File[] files = file.listFiles();
			for(File f:files){
				try {
					System.out.println(f.getCanonicalPath());
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

Sample Output

Below is the sample output when you run the above example.

java lang File listFiles() example output