I have a method which gets files list from given path. but if I give D or C it tooks ~20 mins to get all files list. Windows file search ~1.5 mins. I searched multithreading vs but couldn't find useful solution.
private static List<File> getFiles(String path) {
    File[] arrayOfFile1;
    File root = new File(path);
    File[] list = root.listFiles();
    if (list == null)
        return null;
    int j = (arrayOfFile1 = list).length;
    for (int i = 0; i < j; ++i) {
        File f = arrayOfFile1[i];
        if ((f.isDirectory()) && (!(f.getName().equals(".svn")))) {
            getFiles(f.getAbsolutePath());
        } else if (!(f.getName().equals(".svn"))) {
            sourceFiles.add(f.getAbsoluteFile());
        }
    }
    return sourceFiles;
}
 
     
     
    