In the previous tutorial, we have seen about count number of lines characters and words in a file Java. In this tutorial, we are going to see How to Search a file in a Directory using Java. It a common scenario to search a file in our computer system. it is not only important for Java interview point of view but it is a common requirement to search a file. Here is the example to search a file in a directory.

Search a file in a Directory

SearchFile.java
import java.io.File;
public class SearchFile {

    static final String DIR_PTH = "/home/chandrashekhar/Desktop";
    static final String FILE_NAME = "Onlinetutorialspoint.png";

    public static void main(String[] args) {
        try {
            SearchFile searchFile = new SearchFile();
            searchFile.seach_file(new File(DIR_PTH), FILE_NAME);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void seach_file(File file, String file_to_search) {
        try {
            if (file_to_search != null && !file_to_search.isEmpty()) {
                if (file != null) {
                    if (file.isDirectory()) {
                        //do you have permission to read this directory?    
                        if (file.canRead()) {
//                            System.out.println("Searching in : "+file.getAbsoluteFile());
                            for (File sub_directory : file.listFiles()) {
                                if (sub_directory.isDirectory()) {
                                    seach_file(sub_directory, file_to_search);
                                } else {
                                    if (file_to_search.equalsIgnoreCase(sub_directory.getName().toLowerCase())) {
                                        System.out.println("File Found @ : " + sub_directory.getAbsoluteFile().toString());
                                    }
                                }
                            }
                        } else {
                            System.out.println(file.getAbsoluteFile() + " Permission Denied");
                        }
                    } else {
                        System.out.println(file.getAbsoluteFile() + " is not a directory!");
                    }
                } else {
                    file = new File("/");
                    seach_file(file, file_to_search);
                }
            } else {
                System.out.println("The file given to search ");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Output :


File Found @ : /home/chandrashekhar/Desktop/hello/Onlinetutorialspoint.png
File Found @ : /home/chandrashekhar/Desktop/Onlinetutorialspoint.png

You may also Like :

count number of lines characters and words in a file Java

Writing data to a file in Java
Happy Learning 🙂