确定目录中MimeType的平均文件大小

时间:2018-03-09 13:13:13

标签: java

我正在通过其MimeTypes扫描目录。到目前为止,我的代码计算了目录中现有MimiTypes的总量:

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()));

我想通过显示MimeTypes来对文件大小求和,并将其除以金额以获得每个MimeType的平均大小。 但是我该如何实现呢?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

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;
     }
}

编辑,因为旧版本并没有完全符合您的要求。

答案 1 :(得分:0)

对结果mimeArray进行迭代,总结文件大小(file.lenght())并除以结果数。