- 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");
- }
- }
来源: http://www.phpxs.com/code/1002128/