Search File in Java Recursively

An example recursive logic on searching file like windows search in Java. This logic is much similar to the logic used in deleting folder in Java

Search File in Java - Program



import java.io.*;
import java.util.*;
class JavaSearchFile
{
static Vector<File> v;

public static void main(String args[]) throws Exception
{

// Create a file pointing a folder
File f=new File(args[0]);

// Create a vector of found files
v=new Vector<File>();

// Print the search starting
System.out.println("\nStarting search....\n-------------------------\n");

// Go search args[1] (2nd arg) in dir f
search(f,args[1]);

// Print the found files
print();

}

public static void search(File file,String name)
{


// Print where the search is going on..
System.out.println("Searching in "+file.getAbsolutePath());

// Check if file is directory/folder
if(file.isDirectory())
{


if(file.getName().contains(name))
{

// Add the file to found files vector
v.addElement(file);

}

// Get all files in the folder
File[] files=file.listFiles();


for(int i=0;i<files.length;i++)
{
try
{

if(files[i].isDirectory())
{

// Go search for files if dir
search(files[i],name);

}

else
{

if(files[i].getName().toLowerCase().contains(name.toLowerCase()))
{

// Add the found file to vector
v.addElement(files[i]);

}

}

}catch(Exception e){}

}

}

}

public static void print()
{

// Create a file array of v size
File[] f=new File[v.size()];

// Copy vector data into f
v.copyInto(f);

// Print the results
System.out.println("\nResults");
System.out.println("------------------------------------------");

// Loop till end of size
for(File k:f)
{

// Print the file path
System.out.println("Found at "+k.getAbsolutePath());

}

}

}

Sample Output



Starting search....
-------------------------

Searching in f:\songs
Searching in f:\songs\A R Rahman - Superheavy
Searching in f:\songs\Agneepath
Searching in f:\songs\Aisha
Searching in f:\songs\Alex Clare
Searching in f:\songs\Anandam
Searching in f:\songs\Anandam\covers
Searching in f:\songs\Andala Rakshasi
Searching in f:\songs\Anjaana Anjaani
Searching in f:\songs\Annadammula Anubandham
Searching in f:\songs\Annadammula Anubandham\artwork
Searching in f:\songs\Awaara
Searching in f:\songs\Barfi!
Searching in f:\songs\Bharateyudu
Searching in f:\songs\Bodyguard
Searching in f:\songs\Brothers (2012)
Searching in f:\songs\Cameraman Ganga Tho Rambabu
Searching in f:\songs\Cheli
Searching in f:\songs\Dabangg 2
Searching in f:\songs\Damarukam
Searching in f:\songs\Delhi 6
Searching in f:\songs\Devudu Chesina Manushulu
Searching in f:\songs\Dhenikaina Ready
Searching in f:\songs\Emraan Hits
Searching in f:\songs\Emraan Hits\covers
Searching in f:\songs\English
Searching in f:\songs\Enrique Iglesias
Searching in f:\songs\fifa
Searching in f:\songs\Flo Rida
Searching in f:\songs\Fun
Searching in f:\songs\Gabbar Singh
Searching in f:\songs\Gangnam Style (?????)
Searching in f:\songs\Ghajini
Searching in f:\songs\Ghatikudu
Searching in f:\songs\Gotye
Searching in f:\songs\i hate love stories
Searching in f:\songs\Jaane Tu Ya Jaane Na
Searching in f:\songs\Jab Tak Hai Jaan
Searching in f:\songs\Jhootha Hi Sahi
Searching in f:\songs\Johnny
Searching in f:\songs\Julayi
Searching in f:\songs\Justin Bieber
Searching in f:\songs\KIKK
Searching in f:\songs\Krishnam Vande Jagadgurum
Searching in f:\songs\Linkin Park - Project Revolution
Searching in f:\songs\Love To Love
Searching in f:\songs\Love To Love\Love To Love (2012) ~128Kbps
Searching in f:\songs\Maroon 5
Searching in f:\songs\Melody
Searching in f:\songs\Mr. Perfect
Searching in f:\songs\Nene Ambani
Searching in f:\songs\Ninnu Choosthe Love Vasthundi
Searching in f:\songs\Nirantharam Nee Oohale
Searching in f:\songs\Ok Ok
Searching in f:\songs\Orange
Searching in f:\songs\Orange\artwork
Searching in f:\songs\Other Stuff
Searching in f:\songs\Pitbull
Searching in f:\songs\Power
Searching in f:\songs\Prema Desam
Searching in f:\songs\Premikudu
Searching in f:\songs\Premikula Roju
Searching in f:\songs\Raghavan
Searching in f:\songs\Routine Love Story
Searching in f:\songs\Sakhi
Searching in f:\songs\Sarocharu
Searching in f:\songs\Surya Krishnan
Searching in f:\songs\Surya Krishnan\Surya SO Krishnan-320kbps
Searching in f:\songs\Talaash
Searching in f:\songs\Taylor Swift
Searching in f:\songs\Teri Meri Kahaani
Searching in f:\songs\The Official UK Top 40 Singles Chart 15-07-2012
Searching in f:\songs\Thuppakki
Searching in f:\songs\Unnale Unnale
Searching in f:\songs\Vaasu_2002_320VBR
Searching in f:\songs\Vaasu_2002_320VBR\Vaasu (2002) ~ 320 VBR
Searching in f:\songs\Vicky Donor
Searching in f:\songs\Vicky.Donor
Searching in f:\songs\Vilan
Searching in f:\songs\Viswaroopam
Searching in f:\songs\Westlife
Searching in f:\songs\Yeto Vellipoyindhi Manasu

Results
------------------------------------------
Found at f:\songs\English\Whistle.mp3
Found at f:\songs\The Official UK Top 40 Singles Chart 15-07-2012\06 Flo Rida -
Whistle.mp3

No comments: