To search a particular file recursively
Let’s see a Java program which will search a particular file recursively. In this example we will provide a root path from where it will search a particular file recursively. Either you can search a file by its name or you can provide a valid regular expression.
Using this logic you can implement a file searcher program.
About the example:
Logic behind this program is very simple; it searches a root folder recursively. If the current path is a directory then it will call the same function searchFile(String path, String search) again and again till the particular node file is reached. Now if it is a node file then it will search for the String or the given regular expression.
Let’s see a simple self explanatory java code. No need to add any jar file, directly you can run below the below program and see the output. Just provide a root path and String or valid regular expression to search.
Note: You may get below error if your regular expression is invalid.
Let’s see a Java program which will search a particular file recursively. In this example we will provide a root path from where it will search a particular file recursively. Either you can search a file by its name or you can provide a valid regular expression.
Using this logic you can implement a file searcher program.
About the example:
Logic behind this program is very simple; it searches a root folder recursively. If the current path is a directory then it will call the same function searchFile(String path, String search) again and again till the particular node file is reached. Now if it is a node file then it will search for the String or the given regular expression.
Let’s see a simple self explanatory java code. No need to add any jar file, directly you can run below the below program and see the output. Just provide a root path and String or valid regular expression to search.
/* SearchFile.java */
import java.io.File;
public class SearchFile {
 /* path : provide root directory from where it will search recursively.
  * search : String or valid regular expression. 
  */ 
 public void searchFile(String path,String search) {
  
  File file = new File(path);
  
  //System.out.println("Searching.."+file.getAbsolutePath());
  
  if(file.isDirectory()) {
   File[] allFilesInDirectory = file.listFiles();
   
   for (File eachFile : allFilesInDirectory) {  
    searchFile(eachFile.getAbsolutePath(),search);
   }
  }
  else {
   if(file.getName().matches(search)) {
    System.out.println("File Found >> "+file.getAbsolutePath());
   }
  }
 }
 public static void main(String[] args) {
  
  SearchFile serchObj = new SearchFile();
  //It will search for a jar file in C drive
  serchObj.searchFile("C:/",".*jar");
 }
}
Note: You may get below error if your regular expression is invalid.
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 *.xlsx ^ at java.util.regex.Pattern.error(Pattern.java:1713) at java.util.regex.Pattern.sequence(Pattern.java:1878) at java.util.regex.Pattern.expr(Pattern.java:1752) at java.util.regex.Pattern.compile(Pattern.java:1460) at java.util.regex.Pattern.(Pattern.java:1133) at java.util.regex.Pattern.compile(Pattern.java:823) at java.util.regex.Pattern.matches(Pattern.java:928) at java.lang.String.matches(String.java:2090) 
 
 
