如何获取所选文件和文件夹的实际大小?

时间:2015-05-12 03:52:00

标签: java swing file jfilechooser

JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
File selectedFile = fileChooser.getSelectedFile();
long sizeOfDirectory = FileUtils.sizeOfDirectory(selectedFile);

这不会生成所选文件和文件夹的实际大小,但只会给出一个小于实际值的值。

我一次选择多个文件夹。

如何解决此问题?

1 个答案:

答案 0 :(得分:4)

  

实际上我选择了2个文件夹,然后发生了这个问题

那是因为JFileChooser#getSelectedFile只返回一个。您需要使用JFileChooser#getSelectedFiles并循环遍历它们,为每个文件调用FileUtils.sizeOfDirectory并汇总结果

File[] selectedFiles = fileChooser.getSelectedFiles();
long sizeOfDirectory = 0;
for (File file : selectedFiles) {
    sizeOfDirectory += FileUtils.sizeOfDirectory(file);
}

(您还应该注意getSelectedFilegetSelectedFiles可能会返回null