java学习笔记——IO部分(遍历文件夹)
用File类写的一个简单的工具,遍历文件夹,获取该文件夹下的所以文件(含子目录下的文件)和文件大小:
/** * 列出指定目录下(包含其子目录)的所有文件 * @author syskey * */ import java.io.File; import java.text.DecimalFormat; public class FileList { public static void listDirectory(File dir){ if(!dir.exists()){ throw new IllegalArgumentException("目录"+dir+"不存在!"); } if(!dir.isDirectory()){ throw new IllegalArgumentException(dir+"不是一个目录!"); } /** * 采用了递归的方法,遍历了所有目录 */ File files[] =dir.listFiles(); if(files!=null&&files.length>0){ for (File file : files) { if(file.isDirectory()){ listDirectory(file); }else{ String filesize; DecimalFormat df = new DecimalFormat("0.00"); if(file.length()<1024){ filesize = df.format((double) file.length())+"B"; }else if(file.length()<1024*1024){ filesize = df.format((double) file.length()/1024)+"KB"; }else if(file.length()<1024*1024*1024){ filesize = df.format((double) file.length()/(1024*1024))+"MB"; }else { filesize = df.format((double) file.length()/(1024*1024*1024))+"GB"; } System.out.println(file+" "+filesize); } } } } }