cleanBackups function

Future<int> cleanBackups(
  1. String directory, {
  2. int maxAge = 86400,
})

Clean old backup files.

Implementation

Future<int> cleanBackups(String directory, {int maxAge = 86400}) async {
  var cleaned = 0;
  final cutoff = DateTime.now().subtract(Duration(seconds: maxAge));

  await for (final entity in Directory(directory).list(recursive: true)) {
    if (entity is File && entity.path.contains('.bak.')) {
      final stat = await entity.stat();
      if (stat.modified.isBefore(cutoff)) {
        await entity.delete();
        cleaned++;
      }
    }
  }
  return cleaned;
}