Home » Java programs » Java file handling programs

Java program to traverse all files of a directory/folder



In this java program, we are going to learn how to access and traverse all files of a directory/folder? Here, we are traversing all files of a given directory.
Submitted by IncludeHelp, on December 05, 2017

Given a directory (folder) and we have to traverse its all files using java program.

Example:

Input:
Enter path: ‘E:\Java’
(Java folder in ‘E’ drive)

Output:
About to traverse the directory: JAVA
   About to traverse the directory: 1 Nov
      Visiting file:ChristmasTree.java
      Visiting file:Find Files in Zip File.docx      
   Finished with the directory: 1 Nov
   About to traverse the directory: 2 Nov
      Visiting file:Combine Path.docx
      Visiting file:CombinePath.java
   Finished with the directory: 2 Nov
   About to traverse the directory: 3 Nov
      Visiting file:Check absolute path.docx
      Visiting file:CheckAbsolutePath.java
   Finished with the directory: 2 Nov

Program to traverse all files from a directory in java

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Scanner;


public class TraverseFileSystem 
{
    public static void main(String[] args) 
    {
	    try 
	    {
	      // create object of scanner.
	  	  Scanner KB=new Scanner(System.in);
	  		 
	  	  // enter path here.
	  	  System.out.print("Enter path here : ");
	  	  String A=KB.next();
	      Path path = Paths.get(A);
	      ListFiles listFiles = new ListFiles();
	      Files.walkFileTree(path, listFiles);
	    } 
	    catch (IOException e) 
	    {
	      e.printStackTrace();
	    }
	}
}

class ListFiles extends SimpleFileVisitor<Path> 
{
  private final int indentionAmount = 3;
  private int indentionLevel;

  public ListFiles() 
  {
    indentionLevel = 0;
  }

  private void indent() 
  {
    for (int i = 0; i < indentionLevel; i++) 
    {
      System.out.print(' ');
    }
  }

  public FileVisitResult visitFile(Path file, BasicFileAttributes attributes) 
  {
    indent();
    System.out.println("Visiting file:" + file.getFileName());
    return FileVisitResult.CONTINUE;
  }

  public FileVisitResult postVisitDirectory(Path directory, IOException e)throws IOException 
  {
    indentionLevel = indentionAmount;
    indent();
    System.out.println("Finished with the directory: "+ directory.getFileName());
    return FileVisitResult.CONTINUE;
  }

  public FileVisitResult preVisitDirectory(Path directory,BasicFileAttributes attributes) throws IOException 
  {
    indent();
    System.out.println("About to traverse the directory: "+ directory.getFileName());
    indentionLevel += indentionAmount;
    return FileVisitResult.CONTINUE;
  }

  public FileVisitResult visitFileFailed(Path file, IOException exc)throws IOException 
  {
    System.out.println("A file traversal error ocurred");
    return super.visitFileFailed(file, exc);
  }
}

Output

Enter path here : E:/JAVA
About to traverse the directory: JAVA
   About to traverse the directory: 1 Nov
      Visiting file:ChristmasTree.java
      Visiting file:Find Files in Zip File.docx      
   Finished with the directory: 1 Nov
   About to traverse the directory: 2 Nov
      Visiting file:Combine Path.docx
      Visiting file:CombinePath.java
   Finished with the directory: 2 Nov
   About to traverse the directory: 3 Nov
      Visiting file:Check absolute path.docx
      Visiting file:CheckAbsolutePath.java
   Finished with the directory: 2 Nov





Was this page helpful? YES NO

Are you a blogger? Join our Blogging forum.



Comments and Discussions


We are using Google to publish ads on our website; Google has its own privacy policies. They may save log, cookies on your system. Google may also collect information of your system like IP address, region, city, country. For more details please go through the Google’s privacy policy.