我正在通过 MimeType 扫描目录。到目前为止,我的代码计算了目录中现有 MimiType 的总数:
File dir = new File(dirPath);
File[] files = dir.listFiles((FileFilter) HiddenFileFilter.VISIBLE);
ArrayList<String> mimeArray = new ArrayList<String>();
if (files.length == 0) {
System.out.println("The directory is empty");
} else {
for (File aFile : files) {
mimeArray.add(mtftp.getContentType(aFile));
}
Map<String, Long> counts =
mimeArray.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
我想通过出现的 MimeType 来计算文件大小的总和,然后将其除以数量以获得每个 MimeType 的平均大小。 但我该如何实现呢?
最佳答案
你可以尝试这样的事情:
File dir = new File(dirPath);
File[] files = dir.listFiles((FileFilter) HiddenFileFilter.VISIBLE);
Map<String, ArrayList<Long>> mimeArray = new HashMap();
if (files.length == 0) {
System.out.println("The directory is empty");
}
else {
for (File aFile : files) {
if (!mimeArray.keySet().contains(mtftp.getContentType(aFile))) {
mimeArray.put(mtftp.getContentType(aFile), 0L);
}
mimeArray.get(mtftp.getContentType(aFile)) += aFile.length;
}
}
已编辑,因为旧版本没有完全按照您的要求进行操作。
关于java - 确定目录中 MimeType 的平均文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49194606/