Você está na página 1de 3

import java.io.

*;
import java.nio.*;
import java.util.*;
class FileFinder
{
static String ConvertFilesToString(File St)
//returns path of st(file type string)
{
String Obj=St.getPath();// path of st
return Obj;
}
public static void main (String[]args)
{
int i;
int Flag=1;
File Obj=new File(".");
/* creates a new file instance & convert the pathname
string into abstract path name*/

String FileName=args[0];
//whatever filename user gives, stored in args[0]
File []Arry=Obj.listRoots();
/*An array of File objects denoting the available filesystem roots,
or null if the set of roots could not be determined.The array will
be empty if there are no file system roots */

Stack stack=new Stack();


//stack type obj. formed

System.out.println("Please Wait for few seconds...");

for (int a=0;a<Arry.length&&Flag==1;a++)


{

if (Arry[a].exists())
//if root files exist
{

String Str=Arry[a].getPath();
// return string form of abstract path name
File O=new File(Str);
File [] Arr= O.listFiles();
/*An array of abstract pathnames denoting the files
and directories in the directory denoted by this
abstract pathname. The array will be empty if the
directory is empty. Returns null if this abstract
pathname does not denote a directory, or if an
I/O error occurs*/

for (i=0;i<Arr.length;i++)
{

if (Arr[i].isDirectory()&&Arr[i].canRead())
stack.push(Arr[i]);
if (Arr[i].isFile())
{
String StringObj=Arr[i].getName();
if(FileName.equalsIgnoreCase(StringObj)&&Arr[i].canRead())
{
Flag=0;
System.out.println("File Found");
System.out.println(Arr[i].getPath());
}
//if
}
//outer if
}
//for

while (!stack.empty()&&Flag==1)
{
try
{
O=new File(ConvertFilesToString((File)stack.pop()));
Arr=O.listFiles();
for (i=0;i<Arr.length;i++)
{
if (Arr[i].isDirectory()&&Arr[i].canRead())
stack.push(Arr[i]);
if (Arr[i].isFile()&&Arr[i].canRead())
{
String StringObj=Arr[i].getName();
if(FileName.equalsIgnoreCase(StringObj)){
Flag=0;
System.out.println("File Found");
System.out.println(Arr[i].getPath());
}
//if
}
//outer if

}
//for Loop
}
//try

catch (Exception e){


}

}
//while Loop
}
//outer If
}
//Outer For Loop

if (Flag==1)
System.out.println("File "+FileName+" Does not Exists");
}
}

Você também pode gostar