scan method

Scan without traversing symbolic links, including links in ancestors.

Implementation

Future<StorageReport> scan() async {
  final files = <String, int>{};
  final measurements = <StorageMeasurement>[];
  for (final location in locations) {
    final measurement = await _measure(location, files);
    if (measurement != null) measurements.add(measurement);
  }
  return StorageReport(
    locations: measurements,
    totalBytes: files.values.fold(0, (a, b) => a + b),
  );
}