In this example you’ll see how to read the list of files inside a directory. To get this functionality we can use the File.listFiles()
method. This method return an array of File
object which can be either an instance of file or directory.
package org.kodejava.io;
import java.io.File;
import java.io.FilenameFilter;
public class DirectoryContentExample {
public static void main(String[] args) {
File gamesDir = new File("D:/Games");
// Get a list of file under the specified directory above
// and return it as an abstract file object.
File[] files = gamesDir.listFiles();
if (files != null) {
// Iterates the content of gamesDir directory, print
// it and check it whether it was a directory or a
// file.
for (File file : files) {
System.out.println(file + " is a "
+ (file.isDirectory() ? "directory" : "file"));
}
}
// Here we also get the list of file in the directory but
// return it just as an array of String.
String[] strings = gamesDir.list();
if (strings != null) {
for (String file : strings) {
System.out.println("File = " + file);
}
}
// Now we want to list the file in the directory but we
// just want a file with a .doc extension. To do this we
// first create a FilenameFilter which will be given to
// the listFiles() method to filter the listing process.
// The rule of filtering is implemented in the accept()
// method of the FilenameFilter interface, and we can write
// it using lambda expression as follow.
FilenameFilter filter = (dir, name) -> name.endsWith(".docx");
// Give me just a .doc files in your directory.
File[] docs = gamesDir.listFiles(filter);
if (docs != null) {
for (File doc : docs) {
System.out.println("Doc file = " + doc);
}
}
}
}
Here is the result of the program:
The File[]
array returned:
D:\Games\AOE is a directory
D:\Games\Championship Manager 2017 is a directory
D:\Games\GameHouse is a directory
D:\Games\Sierra is a directory
D:\Games\testing.doc.docx is a file
D:\Games\TTD is a directory
The String[]
array returned:
File = AOE
File = Championship Manager 2017
File = GameHouse
File = Sierra
File = testing.docx
File = TTD
The File[]
array using FilenameFilter
result:
Doc file = D:\Games\testing.docx
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024