案例一:操作目录
1 package com.bjsxt.io.file; 2 3 import java.io.File; 4 import java.io.FilenameFilter; 5 6 /** 7 * 5、操作目录 8 * mkdir() 创建目录,必须确保 父目录存在,如果不存在,创建失败 9 * mkdirs() 创建目录,如果父目录链不存在 一同创建 10 * list() 文件 | 目录字符串形式 11 * listFiles() 12 * static listRoots() 根路径 13 * 14 */ 15 public class Demo04 { 16 public static void main(String[] args) { 17 String path = "E:/xp/test/"; 18 File src = new File(path); //文件夹 19 if(src.isDirectory()) { //存在并且为目录 20 System.out.println("========子目录|文件名======="); 21 String[] subNames = src.list(); 22 23 for(String temp:subNames) { 24 System.out.println(temp); 25 } 26 System.out.println("========子目录|文件File对象======="); 27 File[] subFiles = src.listFiles(); 28 for(File temp:subFiles) { 29 System.out.println(temp.getAbsolutePath()); 30 } 31 System.out.println("========子目录.java对象======="); 32 //命令设计模式 33 subFiles = src.listFiles(new FilenameFilter() { 34 35 @Override 36 /** 37 * dir 代表src 38 */ 39 public boolean accept(File dir, String name) { 40 // System.out.println(dir.getAbsolutePath()); 41 return new File(dir,name).isFile() && name.endsWith(".java"); 42 } 43 44 }); 45 for(File temp:subFiles) { 46 System.out.println(temp.getAbsolutePath()); 47 } 48 49 50 } 51 } 52 53 public static void test1() { 54 String path = "E:/xp/test/parent/test"; 55 File src = new File(path); 56 // src.mkdir(); 57 src.mkdirs(); 58 } 59 60 }
运行结果:
========子目录|文件名======= 2.jpg a.txt Demo03.java test ========子目录|文件File对象======= E:xp est2.jpg E:xp esta.txt E:xp estDemo03.java E:xp est est ========子目录.java对象======= E:xp estDemo03.java
案例二:输出子孙级目录
1 package com.bjsxt.io.file; 2 3 import java.io.File; 4 import java.util.Arrays; 5 6 /** 7 * 输出子孙级目录|文件的名称(绝对路径) 8 * 1、listFiles() 9 * 2、递归 10 * 11 * static listRoots() 根路径 12 * 13 */ 14 public class Demo05 { 15 public static void main(String[] args) { 16 String path = "E:/xp/test"; 17 File parent = new File(path); 18 // printName(parent); 19 20 File[] roots = File.listRoots(); 21 System.out.println(Arrays.toString(roots)); //[C:\, D:\, E:\, F:] 22 for(File temp:roots) { 23 // printName(temp); 24 } 25 } 26 /** 27 * 输出路径 28 */ 29 public static void printName(File src) { 30 if(null==src || !src.exists()) { 31 return; 32 } 33 System.out.println(src.getAbsolutePath()); 34 if(src.isDirectory()) { 35 for(File sub:src.listFiles()) { 36 printName(sub); 37 } 38 } 39 } 40 41 }