多线程计算文件夹大小并同时显示(多线程Java)
我需要创建一个代码来计算系统中某个文件夹的大小,并在JLabel上显示进度(以KB为单位)。计数部分已经完成。我需要第二部分。它应该通过多线程(每100毫秒更改一次标签文本)来完成。先谢谢你。这是计数代码
public static long getFileSize(File folder) {
long foldersize = 0;
File[] filelist = folder.listFiles();
for (int i = 0; i < filelist.length; i++) {
if (filelist[i].isDirectory()) {
foldersize += getFileSize(filelist[i]);
} else {
foldersize += filelist[i].length();
}
}
return foldersize;
}
# 1 楼答案
这是我自己找到的解决办法。上面的代码正在创建简单的UI。按钮计算给定路径的大小,并打印给定文件夹的大小以及给定路径中的文件和文件夹数
公共类FileSizeCounter{
}
公共类UI实现ActionListener{
}
公共类主{
}
# 2 楼答案
生成一个单独的线程来调用getFolderSize函数,并使
foldersize
成为一个静态可变变量。然后可以从UI线程访问foldersize
,并使用它使用java.util.Timer
定期更新JLabel