Tuesday, June 8, 2010

Java Program to List the Directories,SubDirectories and Files in them

import java.io.File;

import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;


/**
* List the Directories, SubDirection and Files in them
* @author Sudipta Kumar Laha
*
*/
public class FileStructure {
/**
* Print Directories, SubDirection and Files in them
* @param str
*
*/
public void getFiles(String str){
System.out.println("[D]\t"+str);
File f=new File(str);
File ss[]=f.listFiles();


if(ss!=null){
Arrays.sort(ss, new sortStructure());
for(int i=0;i<ss.length;i++){
if(ss[i].isDirectory()){
String currDir=ss[i].getAbsolutePath();
System.out.println("Total File & Directory "+ss.length);
this.getFiles(currDir);
}else{
System.out.println("[F]\t"
+getPermissions(ss[i].canRead(),ss[i].canWrite(),ss[i].canExecute())+
"\t"+
ss[i].getName());
}
}
}else{
System.out.println("Unable to read");
}

}
/**
* Checks for the access in files
* @param canRead
* @param canWrite
* @param canExecute
* @return
*/
private String getPermissions(boolean canRead, boolean canWrite,
boolean canExecute) {
StringBuffer buff=new StringBuffer();
if(canRead)
buff.append("r");
else
buff.append("-");
if(canWrite)
buff.append("w");
else
buff.append("-");
if(canExecute)
buff.append("e");
else
buff.append("-");
return buff.toString();
}

/**
* Start of Program
* @param args
*/
public static void main(String args[]){
FileStructure obj=new FileStructure();
obj.getFiles(args[0]);

}

}


/**
* Class extends comparator to sort files and directories
* @author Sudipta Kumar Laha
*
*/
class sortStructure implements Comparator<File>{
@Override
public int compare(File o1, File o2) {
// TODO Auto-generated method stub
if(o1.isDirectory() && o2.isDirectory()){
return o1.getName().compareTo(o1.getName());
}else if(o1.isFile() && o2.isFile())
return o1.getName().compareTo(o1.getName());
else if(o1.isDirectory())
return 1;
else
return 0;
}
}



About Me