一:给固定的文件路径求文件大小
package com.wyj.one;import java.io.File;/*** 递归求出文件的大小* @author 86155**/
public class CopyOfDemo10_递归打印子文件大小 {public static void main(String[] args) {File src = new File("C:/Myjava/project12_IO");count(src);System.out.println(len);} private static long len = 0;public static void count(File src){if( null != src && src.exists()){if(src.isFile()){//这里是递归终止条件len = len + src.length();}else{for(File temp:src.listFiles()){count(temp);}}}}}
二:面向不同的对象
package com.wyj.one;import java.io.File;/*** 递归求出文件的大小 打印不同文件夹的大小* * 在这里面向对象的理解 即是面向 不同的源文件 来求取 他们的文件大小* * * * @author 王永杰**/
public class Demo11_面向对象打印文件大小 {//大小private long len;//文件夹的路径private String path;//源文件private File src;public Demo11_面向对象打印文件大小(String path) {super();this.path = path;this.src = new File(path);this.count(src);}private void count(File src){if( null != src && src.exists()){if(src.isFile()){//这里是递归终止条件len = len + src.length();}else{for(File temp:src.listFiles()){count(temp);}}}}public long getLen() {return len;}public void setLen(long len) {this.len = len;}public static void main(String[] args) {Demo11_面向对象打印文件大小 dir1 = new Demo11_面向对象打印文件大小("C:/Myjava/project12_IO");System.out.println(dir1.getLen());Demo11_面向对象打印文件大小 dir2 = new Demo11_面向对象打印文件大小("C:/Myjava/project12_IO/png.jpg");System.out.println(dir2.getLen());}
}
如有疑问 敬请留言!