- Java 编程示例
- 示例 - 主页
- 示例 - 环境
- 示例 - 字符串
- 示例 - 数组
- 示例 - 日期和时间
- 示例 - 方法
- 示例 - 文件
- 示例 - 目录
- 示例 - 异常
- 示例 - 数据结构
- 示例 - 集合
- 示例 - 网络
- 示例 - 多线程
- 示例 - 小程序
- 示例 - 简单 GUI
- 示例 - JDBC
- 示例 - 正则表达式
- 示例 - Apache PDF Box
- 示例 - Apache POI PPT
- 示例 - Apache POI Excel
- 示例 - Apache POI Word
- 示例 - OpenCV
- 示例 - Apache Tika
- 示例 - iText
- Java 教程
- Java - 教程
- Java 有用资源
- Java - 快速指南
- Java - 有用资源
如何获得 Java 中目录的大小
问题描述
如何获得目录的大小?
解决方案
以下示例展示如何使用 FileUtils 类的 FileUtils.sizeofDirectory(FileName) 方法获取目录的大小。
import java.io.File;
import org.apache.commons.io.FileUtils;
public class Main {
public static void main(String[] args) {
long size = FileUtils.sizeOfDirectory(new File("C:/Windows"));
System.out.println("Size: " + size + " bytes");
}
}
结果
以上代码示例将生成以下结果。
Size: 2048 bytes
以下是另一个示例代码,用于获取 Java 中目录的大小
import java.io.File;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
long folderSize = findSize("C:\\a");
System.out.println("Size in byte :"+folderSize);
}
public static long findSize(String path) {
long totalSize = 0;
ArrayList<String> directory = new ArrayList<String>();
File file = new File(path);
if(file.isDirectory()) {
directory.add(file.getAbsolutePath());
while (directory.size() > 0) {
String folderPath = directory.get(0);
System.out.println("Size of this :"+folderPath);
directory.remove(0);
File folder = new File(folderPath);
File[] filesInFolder = folder.listFiles();
int noOfFiles = filesInFolder.length;
for(int i = 0 ; i < noOfFiles ; i++) {
File f = filesInFolder[i];
if(f.isDirectory()) {
directory.add(f.getAbsolutePath());
} else {
totalSize += f.length();
}
}
}
} else {
totalSize = file.length();
}
return totalSize;
}
}
以上代码示例将生成以下结果。
Size of this :C:\a Size of this :C:\a\b Size of this :C:\a\b\c Size of this :C:\a\b\c\d Size in byte :0
java_directories.htm
广告