1、java.io.File
File 类只用于表示文件(目录)的信息(名称、大小等),不能对文件的内容进行访问。
下面举一些 File类 的例子:
递归删除目录(所有目录和文件)
public static void delDir(File f) { // 判断是否是一个目录, 不是的话跳过, 直接删除; 如果是一个目录, 先将其内容清空. if(f.isDirectory()) { // 获取子文件/目录 File[] subFiles = f.listFiles(); // 遍历该目录 for (File subFile : subFiles) { // 递归调用删除该文件: 如果这是一个空目录或文件, 一次递归就可删除. 如果这是一个非空目录, 多次 // 递归清空其内容后再删除 delDir(subFile); } } // 删除空目录或文件 f.delete(); }
统计 ".java " 结尾的文件数
public static int count = 0; public static int countJava(File f) { File files[] = f.listFiles(); System.out.println(f.getName()); for(File file:files) { if(file.isFile()) { if(file.getName().endsWith(".java")) {//统计以.java结尾的文件 count++; System.out.println("统计:"+file.getName()); } } if(file.isDirectory()) { countJava(file); } } return count; }
2、FileFilter接口(抽象路径名的过滤器)
此接口的实例可传递给File类的 listFiles(FileFilter)方法。用于返回满足该过滤器要求的子项。
File dir = new File("/home/soft01/demo");//文件路径 File[]files = dir.listFiles(new FileFilter() { public boolean accept(File file) { return file.getName().endsWith(".java"); //返回以“.java”结尾的文件 } }); for(File file:files) { System.out.println(file.getName());//列出所有文件 }