Java 递归列出目录下的文件以及子目录
发布时间:2020-12-14 23:30:02 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.io.File;import java.io.FilenameFilter;import java.io.FileFilter;/** * ----------------------------------------------------------
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 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"); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容