代码:
import java.io.File; public class Demo { public static void main(String[] args) { //创建文件目录 File file = new File("d:\\aa"); //调用方法打印所有的Java文件名 printFileName(file); //调用方法得到指定目录下所有的Java文件的大小 long lenth = fileLenth(file); System.out.println(file.getName()+"目录下所有的Java文件大小为: "+lenth); } //定义方法打印给定目录下的所有的Java文件,参数为文件的目录,返回值为空 public static void printFileName(File file) { if (file.isDirectory() && file.exists()) {//参数file是目录并且存在 //生成File数组 File[] fileList = file.listFiles(); //遍历集合 for (File f : fileList) { if (f.isDirectory()) {//次元素是目录 printFileName(f);//递归调用 }else { if (f.getName().endsWith(".java")) {//如果是以.Java结尾 System.out.println(f.getName());//打印该文件的名字 } } } } else { System.out.println("您传入的参数无效"); } } //定义方法求出给定目录下的所有Java文件的大小,参数为文件目录,返回值为文件的大小 public static long fileLenth(File file) { long len = 0 ;//定义变量用来保存文件的大小 if (file.exists() && file.isDirectory()) { //生成File[]集合 File[] fileList = file.listFiles(); for (File f : fileList) {//遍历文件集合 if (f.isDirectory()) {//如果该文件是目录 len += fileLenth(f);//递归调用并且将所得的文件大小全部相加 }else { if (f.getName().endsWith(".java")) {//如果是Java文件 len += f.length();//将所有文件的大小相加 } } } }else { System.out.println("您传入的文件无效"); return -1; } return len; } }
控制台打印效果: