Friday, February 3, 2012

How to read subfolders/directories and files in root directory/folder in java

public class DirectoryReader {

public static void populateArrayListsWithDirAndFilesInFolders(String currDirectory, ArrayList<String> directories, ArrayList<String> files )
{
File folder = new File(currDirectory);
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) 
{
if(listOfFiles[i].isFile())
{
files.add(listOfFiles[i].getPath());
}
if (listOfFiles[i].isDirectory()) 
{
directories.add(listOfFiles[i].getPath());
//System.out.println("Directory name-" + listOfFiles[i].getName() + " path-" + listOfFiles[i].getPath());
}
}//End of for
}//End of populateArrayListWithDirInFolders

public static void getAllSubdirectoriesAndFiles(String basedir)
{
ArrayList<String> directories = new ArrayList<String>();
ArrayList<String> files = new ArrayList<String>();
directories.add(basedir);
int currentLocationInArrayList = 1;
while(currentLocationInArrayList<=directories.size ())
{
String currDirectory = directories.get(currentLocationInArrayList-1);
currentLocationInArrayList++;
populateArrayListsWithDirAndFilesInFolders(currDir ectory, directories, files );

}//End of while

System.out.println("*****\nFollowing are the files under the directory-" + basedir + "\n*****\n");
for(String file : files)
System.out.println(file);

System.out.println("*****\nFollowing are the subdirectories under the directory-" + basedir + "\n*****\n");
for(String directory : directories)
System.out.println(directory);

}//End of getAllSubdiectories

public static void main(String args[])
{
getAllSubdirectoriesAndFiles("E://workspace//working//");

}//End of main

} //End of directoryReader

follow some usefullinks
...................................
http://www.javapractices.com/topic/TopicAction.do?Id=68
http://www.roseindia.net/java/beginners/DirectoryListing.shtml
http://stackoverflow.com/questions/2056221/recursively-list-files-in-java
http://stackoverflow.com/questions/189094/how-to-scan-a-folder-in-java



No comments:

Post a Comment