Last Updated : 21 Oct, 2020
Searching files in Java can be performed using the File class and FilenameFilter interface. The FilenameFilter interface is used to filter files from the list of files. This interface has a method boolean accept(File dir, String name) that is implemented to find the desired files from the list returned by the java.io.File.list() method. This method is very useful when we want to find files with a specific extension within a folder.
First Approach
Code Implementation
Java
// Java Program to Search for a File in a Directory
import java.io.*;
// MyFilenameFilter class implements FilenameFilter
// interface
class MyFilenameFilter implements FilenameFilter {
String initials;
// constructor to initialize object
public MyFilenameFilter(String initials)
{
this.initials = initials;
}
// overriding the accept method of FilenameFilter
// interface
public boolean accept(File dir, String name)
{
return name.startsWith(initials);
}
}
public class Main {
public static void main(String[] args)
{
// Create an object of the File class
// Replace the file path with path of the directory
File directory = new File("/home/user/");
// Create an object of Class MyFilenameFilter
// Constructor with name of file which is being
// searched
MyFilenameFilter filter
= new MyFilenameFilter("file.cpp");
// store all names with same name
// with/without extension
String[] flist = directory.list(filter);
// Empty array
if (flist == null) {
System.out.println(
"Empty directory or directory does not exists.");
}
else {
// Print all files with same name in directory
// as provided in object of MyFilenameFilter
// class
for (int i = 0; i < flist.length; i++) {
System.out.println(flist[i]+" found");
}
}
}
}
Output
file.cpp found
Second Approach
This method is a bit different from the previous one as the user needs to specify the exact name of the file in this case.
Code Implementation
Java
// Java Program to Search for a File in a Directory
import java.io.File;
public class Main {
public static void main(String[] argv) throws Exception
{
// Create an object of the File class
// Replace the file path with path of the directory
File directory = new File("/home/user/");
// store all names with same name
// with/without extension
String[] flist = directory.list();
int flag = 0;
if (flist == null) {
System.out.println("Empty directory.");
}
else {
// Linear search in the array
for (int i = 0; i < flist.length; i++) {
String filename = flist[i];
if (filename.equalsIgnoreCase("file.cpp")) {
System.out.println(filename + " found");
flag = 1;
}
}
}
if (flag == 0) {
System.out.println("File Not Found");
}
}
}
Output
file.cpp found
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4