Is it advisable to split this process into different threads?
===

I have a Java application that is designed to run on removable devices. One feature of it is that it is designed to list all of the folders on the drive, but obviously the more files and folders there are the more time it will take (regardless of how powerful the computer is) and with removal devices getting bigger and bigger these days, I think it is important to gain as much speed in this process as possible.

I know that the best/quickest (in terms of listing, not coding) way would be to create an index file, but I think that misses the point of what my application is all about. So, I thought maybe threads would help because in theory, even two would double the speed of listing, but I don't know if this is possible, and if so how?

Any answers would be appreciated. Here is the recursive method that I currently have:

    private static void recursiveNodeCreation(DefaultMutableTreeNode node, String root){
    		if(root==null) root = RUNNING_DRIVE = ".";
    		
    		try{
    		// Get a list of files/folders in the root directory
    		File rootDir = new File(root);
    		
    		File[] files = rootDir.listFiles();
    		// Loop through the files/folders
    		for(File current : files){
    			if(Files.isReadable(current.toPath()) && !current.isHidden() && current.isDirectory()){
    				DefaultMutableTreeNode folder = new DefaultMutableTreeNode(new FolderOnDrive(current.getName(), current.getPath()));
    				recursiveNodeCreation(folder, current.getPath());
    				node.add(folder);
    			}
    		}
    		}catch(Exception e){e.printStackTrace();}
    }
(`RUNNING_DRIVE` holds the drive letter of the drive that the application is running on. I just added `= "."` to make it quicker whilst testing. As you may have guessed, I'm listing all the folders in a JTree.) 