控制台程序,列出目录的全部内容并使用过滤器来选择特定的条目。
1 import java.nio.file.*; 2 import java.io.IOException; 3 4 public class ListDirectoryContents { 5 public static void main (String[] args) { 6 Path currentPath=Paths.get(System.getProperty("user.dir")); 7 currentPath=currentPath.getParent(); 8 9 filterDirectoryContents(currentPath,null); 10 11 System.out.println("\nFilter for .txt:"); 12 filterDirectoryContents(currentPath,"*.txt"); 13 14 System.out.println("\nFilter for .j???:"); 15 filterDirectoryContents(currentPath,"*.j???"); 16 } 17 18 private static void filterDirectoryContents(Path path,String filter) { 19 try(DirectoryStream<Path> paths=filter != null ? Files.newDirectoryStream(path,filter) : Files.newDirectoryStream(path)){ 20 System.out.println("\n" + path + " directory contains:"); 21 for(Path p :paths){ 22 System.out.println(" " + p.getFileName() + (Files.isDirectory(p) ? " is a directory." : "")); 23 } 24 }catch (NotDirectoryException e) { 25 System.err.println("Path is not a directory." + e); 26 }catch(IOException e) { 27 System.err.println("I/O error." + e); 28 } 29 } 30 }