List file structure within folder or hard drive



This code example lists the files and folders and also the content in all subfolders.

With recursive calls the file/directory tree can be listed with
a relatively small amount of code.

The purpose of the getTabs method and the variable tabCounter is only to
make the output more viewable with indenting for each level.



import java.io.File;

public class FileStructure {

  int tabCounter = 0;

  public void listFilesAndFolders(String folder) {

    File file = new File(folder);

    if (!file.exists() || !file.isDirectory()) {

      System.out.println("Parameter is not a directory");
      System.exit(1);

    }

    File[] fileArray = file.listFiles();

    for (int i = 0; i < fileArray.length; i++) {

      if (fileArray[i].isDirectory()) {

        System.out.println(getTabs() + "- " + fileArray[i].getName());
        tabCounter++;
        listFilesAndFolders(fileArray[i].getAbsolutePath());

      }
      else {

        System.out.println(getTabs() + fileArray[i].getName());
      }
    }
    tabCounter--;

  }

  private String getTabs() {

    StringBuffer buffer = new StringBuffer();
    for (int i = 0; i < tabCounter; i++)
      buffer.append("\t");

    return buffer.toString();
  }

  public static void main(String[] args) {

    FileStructure fileStructure = new FileStructure();
    fileStructure.listFilesAndFolders("C:\\temp");
  }
}
 
Do you know your Java?
Take a Ten-Question-Java-Quiz!

Bookmark and Share




Need help with your Java code? It's secure and confidential.
This is how it works:
Send a detailed description of what you need help with, the more details the better. Also provide a deadline for when it has to be finished. More time means better chance of putting your request into the schedule.

If the request is serious you will shortly receive an email with the price, to which you have to respond if you accept.

Once you have accepted, the work will begin on developing your code by an experienced Java developer. When the code is finished a link to a secure payment will be sent to you.

The source code is then sent to you once the payment is completed.

IMPORTANT! The request needs to be very detailed, else it may be ignored.


Write your detailed request here:

E-mail address: