FindDirectories.java Source code

Java tutorial

Introduction

Here is the source code for FindDirectories.java

Source

/*
   This program is a part of the companion code for Core Java 8th ed.
   (http://horstmann.com/corejava)
    
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
    
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
    
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import java.io.File;
import java.io.IOException;

/**
 * @version 1.00 05 Sep 1997
 * @author Gary Cornell
 */
public class FindDirectories {
    public static void main(String[] args) {
        // if no arguments provided, start at the parent directory
        if (args.length == 0)
            args = new String[] { ".." };

        try {
            File pathName = new File(args[0]);
            String[] fileNames = pathName.list();

            // enumerate all files in the directory
            for (int i = 0; i < fileNames.length; i++) {
                File f = new File(pathName.getPath(), fileNames[i]);

                // if the file is again a directory, call the main method recursively
                if (f.isDirectory()) {
                    System.out.println(f.getCanonicalPath());
                    main(new String[] { f.getPath() });
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}