static L findDirsWithSizes(File dir) { new L out; findDirsWithSizes(dir, out); ret out; } svoid findDirsWithSizes(File dir, L out) { long clusterSize = assumedClusterSize(); long n = 0; new L l2; for (File f : listFiles(dir)) if (f.isDirectory()) findDirsWithSizes(f, l2); else n += roundUpTo(clusterSize, f.length()); for (FileWithSize f : l2) n += f.size; out.add(FileWithSize(dir, n)); out.addAll(l2); }