Here is the Java Code to search for a file recursively through the code.
import java.io.File; import java.util.ArrayList; import java.util.List; public class FileSearch { static List<String> result = new ArrayList<String>(); public static void main(String[] args) { String dirc = "C:\\Users\\naved.alam\\workspace\\Test"; String fName = "FileSearch.java"; FileSearch.search(new File(dirc),fName); int size = result.size(); if(size ==0){ System.out.println("\nNo File found."); }else{ System.out.println("\nFound " + size + " File:"); for (String matched : result){ System.out.println("File : " + matched); } } } private static void search(File directory,String fileName) { if (directory.isDirectory()) { System.out.println("Searching directory..." + directory.getAbsoluteFile()); //Check for permission if (directory.canRead()) { for (File temp : directory.listFiles()) { if (temp.isDirectory()) search(temp,fileName); else if (fileName.equals(temp.getName())) result.add(temp.getAbsoluteFile().toString()); } } else System.out.println(directory.getAbsoluteFile() + ": Permission Denied"); } } }A sample run is shown below:
Searching directory...C:\Users\naved.alam\workspace\Test Searching directory...C:\Users\naved.alam\workspace\Test\.settings Searching directory...C:\Users\naved.alam\workspace\Test\backup Searching directory...C:\Users\naved.alam\workspace\Test\bin Searching directory...C:\Users\naved.alam\workspace\Test\bin\com Searching directory...C:\Users\naved.alam\workspace\Test\bin\com\example Searching directory...C:\Users\naved.alam\workspace\Test\src Searching directory...C:\Users\naved.alam\workspace\Test\src\com Searching directory...C:\Users\naved.alam\workspace\Test\src\com\example Found 2 File: File : C:\Users\naved.alam\workspace\Test\backup\FileSearch.java File : C:\Users\naved.alam\workspace\Test\src\com\example\FileSearch.javaAbove code can be modified to search for a file matching certain pattern or expression and can be use to integrate advance file searching functionality in an application.