欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 递归列出目录下的文件以及子目录,java递归,import java.

来源: javaer 分享于  点击 37904 次 点评:230

Java 递归列出目录下的文件以及子目录,java递归,import java.


import java.io.File;import java.io.FilenameFilter;import java.io.FileFilter;/** * ----------------------------------------------------------------------------- * This program demonstrates how to list the file or subdirectories in a * given directory * * @version 1.0 * ----------------------------------------------------------------------------- */public class ListFilesSubs {    /**     * Used to list the files / subdirectories in a given directory.     * @param dir Directory to start listing from     */    private static void doSimpleFileListing(String dirName) {        System.out.println();        System.out.println("Simple file listing...");        System.out.println("----------------------");        File dir = new File(dirName);        String[] children = dir.list();        printFiles(children, dirName);    }    /**     * Used to list the files / subdirectories in a given directory and also     * provide a filter class.     * @param dir Directory to start listing from     * @param ff  A string that can be used to filter out files from the     *            returned list of files. In this example, the String     *            values is used to only return those values that start     *            with the given String.     */    private static void doFileFilterListing(String dirName, String ff) {        System.out.println("Filter file listing...");        System.out.println("----------------------");        final String fileFilter = ff;        File           dir     = new File(dirName);        FilenameFilter filter  = null;        if (fileFilter != null) {            // It is also possible to filter the list of returned files.            // This example uses the passed in String value (if any) to only            // list those files that start with the given String.            filter = new FilenameFilter() {                public boolean accept(File dir, String name) {                    return name.startsWith(fileFilter);                }            };        }        String[] children = dir.list(filter);        printFiles(children, dirName);    }    /**     * Used to list the files / subdirectories in a given directory and also     * provide a filter class that only lists the directories.     * @param dir Directory to start listing from     */    private static void doFileFilterDirectoryListing(String dirName) {        System.out.println("Filter Directory listing...");        System.out.println("---------------------------");        File dir = new File(dirName);        // The list of files can also be retrieved as File objects. In this        // case, we are just listing all files in the directory. For the sake        // of this example, we will not print them out here.        File[] files = (new File(dirName)).listFiles();        // This filter only returns directories        FileFilter dirFilter = new FileFilter() {            public boolean accept(File dir) {                return dir.isDirectory();            }        };        files = dir.listFiles(dirFilter);        for (int i=0; i<files.length; i++) {            System.out.println("[D] : " + files[i]);        }        System.out.println();    }    /**     * Utility method to print the list of files to the terminal     * @param children A String array of the file names to print out     * @param dirName  The given directory to start the listing at.     */    private static void printFiles(String[] children, String dirName) {        if (children == null) {            System.out.println("Error with " + dirName);            System.out.println("Either directory does not exist or is not a directory");        } else {            for (int i=0; i<children.length; i++) {                // Get filename of file or directory                String filename = children[i];                if ((new File(dirName + File.separatorChar + filename)).isDirectory()) {                    System.out.print("[D] : ");                } else {                    System.out.print("[F] : ");                }                System.out.println(dirName + File.separatorChar + filename);            }        }        System.out.println();    }    /**     * Sole entry point to the class and application.     * @param args Array of String arguments.     */    public static void main(String[] args) {        // Call the simple file listing method        doSimpleFileListing("new_dir");        // Now do the file listing but pass in a String to filter the file list        if (args.length == 0) {            doFileFilterListing("new_dir", null);        } else {            doFileFilterListing("new_dir", args[0]);        }        // Now do another example that only prints out the directories        doFileFilterDirectoryListing("new_dir");    }}
相关栏目:

用户点评