遞歸輸出一個文件夾的大小 文件數量 文件個數
import java.io.File;
public class MoreFile {
private long len;
private String path;
File file;
private int filesize;
private int dirsize;
public MoreFile(String path) {
this.path=path;
this.file=new File(path);
Count(file);
}
public long getLen() {
return len;
}
public int getFilesize() {
return filesize;
}
public int getDirsize() {
return dirsize;
}
public static void main(String[] args) {
MoreFile dir = new MoreFile("F:/java-2018-12/IO");
System.out.println(dir.getLen());
System.out.println(dir.getDirsize());
System.out.println(dir.getFilesize());
}
//遞歸獲取一個文件夾的大小 文件數量 文件個數
public void Count(File f){
if(f!=null&&f.exists()){
if(f.isFile()){
len+=f.length();
this.filesize++;
}else{
this.dirsize++;
for(File file:f.listFiles()){
Count(file);
}
}
}
}
}
遞歸打印一個文件夾每層的文件名
import java.io.File;
public class ListName {
private static long len = 0;
public static void main(String[] args) {
File f = new File("F:/java-2018-12/IO");
printName(f, 0);
Count(f);
System.out.println(len);
}
//遞歸打印出文件夾裏每層所有的文件名
public static void printName(File src, int deep) {
//表示文件夾的第幾層
for (int i = 0; i < deep; i++) {
System.out.print("-");
}
System.out.println(src.getName());
if (src == null && !src.exists())
return;
else if (src.isDirectory()) {
//listFiles()存儲的爲File對象【完整路徑】
for (File f : src.listFiles()) {
printName(f, deep++);
}
}
}
}