如何获取所选文件和文件夹的实际大小?
How to get the actual size of selected files and folders?
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
File selectedFile = fileChooser.getSelectedFile();
long sizeOfDirectory = FileUtils.sizeOfDirectory(selectedFile);
这不会生成所选文件和文件夹的实际大小,而只会给出一个小于实际值的值。
我一次选择了多个文件夹。
我该如何解决这个问题?
Actually I am selecting 2 folders, then this issue happens
那是因为 JFileChooser#getSelectedFile
只会 return 一。您需要使用 JFileChooser#getSelectedFiles
并循环遍历它们,为每个文件调用 FileUtils.sizeOfDirectory
并对结果求和
File[] selectedFiles = fileChooser.getSelectedFiles();
long sizeOfDirectory = 0;
for (File file : selectedFiles) {
sizeOfDirectory += FileUtils.sizeOfDirectory(file);
}
(您还应注意 getSelectedFile
和 getSelectedFiles
可能 return null
)
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
File selectedFile = fileChooser.getSelectedFile();
long sizeOfDirectory = FileUtils.sizeOfDirectory(selectedFile);
这不会生成所选文件和文件夹的实际大小,而只会给出一个小于实际值的值。
我一次选择了多个文件夹。
我该如何解决这个问题?
Actually I am selecting 2 folders, then this issue happens
那是因为 JFileChooser#getSelectedFile
只会 return 一。您需要使用 JFileChooser#getSelectedFiles
并循环遍历它们,为每个文件调用 FileUtils.sizeOfDirectory
并对结果求和
File[] selectedFiles = fileChooser.getSelectedFiles();
long sizeOfDirectory = 0;
for (File file : selectedFiles) {
sizeOfDirectory += FileUtils.sizeOfDirectory(file);
}
(您还应注意 getSelectedFile
和 getSelectedFiles
可能 return null
)