一:给固定的文件路径求文件大小
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());
}
}
如有疑问 敬请留言!