java 获取当前文件夹下的文件夹大小并排序
你可以使用 java.io.File 类来获取当前文件夹下的文件夹大小,并使用 java.util.Comparator 接口来排序文件夹。
下面是一个示例代码:
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class FolderSize {
public static void main(String[] args) {
File currentFolder = new File(".");
List<File> folders = new ArrayList<>();
// 获取当前文件夹下的所有文件夹
for (File file : currentFolder.listFiles()) {
if (file.isDirectory()) {
folders.add(file);
}
}
// 排序文件夹
Collections.sort(folders, new Comparator<File>() {
@Override
public int compare(File f1, File f2) {
long size1 = getFolderSize(f1);
long size2 = getFolderSize(f2);
return Long.compare(size1, size2);
}
});
// 打印文件夹路径和大小
for (File folder : folders) {
long size = getFolderSize(folder);
System.out.println(folder.getAbsolutePath() + " - " + size + " bytes");
}
}
// 获取文件夹大小
public static long getFolderSize(File folder) {
long size = 0;
for (File file : folder.listFiles()) {
if (file.isFile()) {
size += file.length();
} else if (file.isDirectory()) {
size += getFolderSize(file);
}
}
return size;
}
}
上面的代码首先获取当前文件夹下的所有文件夹,并将它们存储在一个 List<File> 中。然后使用 Collections.sort 方法对文件夹进行排序,排序的依据是文件夹的大小。最后,遍历排序后的文件夹列表,打印文件夹的路径和大小。
注意:上述代码中使用了递归来计算文件夹的大小,如果文件夹层级较深或者文件夹中包含大量文件,可能会导致性能问题。你可以根据实际情况进行优化
原文地址: http://www.cveoy.top/t/topic/ioXu 著作权归作者所有。请勿转载和采集!