Showing posts with label Fetch all files contained in a directory and its sub-directories. Show all posts
Showing posts with label Fetch all files contained in a directory and its sub-directories. Show all posts

Friday, February 25, 2011

Fetch all files contained in a directory and its sub-directories

package com.java.discussions101;

/**
* @author Supratim Samanta
* @since 13/01/2011 2025HRS
* @modified 14/01/2011 2348HRS
*
*/

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class FileTree {

private static List fileArray = new ArrayList();
private static int count = 0;
private static final String location = "./";

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

File file = new File(location);
getFileTreeIterated(file);
printAll(fileArray);
}

private static void getFileTreeIterated(File file) {
if (file.isDirectory()) {
File[] fileList = file.listFiles();
try {
for (File tempFile : fileList) {
if (tempFile.isDirectory()) {
getFileTreeIterated(tempFile);
} else {
fileArray.add(tempFile);
count++;
}
}
} catch (NullPointerException npe) {
return;
}
} else {
fileArray.add(file);
count++;
}
}

private static void printAll(List array) throws IOException {
if (!(array.size() == 0)) {
Iterator it = array.iterator();
System.out.println("The Number Of Files : " + array.size());

while (it.hasNext()) {
File tempFile = it.next();

System.out.println(tempFile.getCanonicalPath());
}
} else
System.out.println("NOTHING FOUND");
}

}




Just change the "location" String attribute to your directory path. All files in that directory wiil be displayed. In my case the location is the current directory.

Cheers....