purge method
Removes old data from storage, reducing the maximum total directory size to maxSizeBytes
.
Implementation
void purge(int maxSizeBytes) {
List<FileAndStat> files = <FileAndStat>[];
final dirEntries = innerDir.listSync(recursive: true);
for (final entry in dirEntries) {
if (entry.path.endsWith(DIRTY_SUFFIX)) {
deleteSyncCalm(File(entry.path));
continue;
}
if (entry.path.endsWith(DATA_SUFFIX)) {
final f = File(entry.path);
files.add(FileAndStat(f));
}
}
FileAndStat.deleteOldest(files,
maxSumSize: maxSizeBytes,
maxCount: JS_MAX_SAFE_INTEGER,
deleteFile: (file) => file.deleteSync());
}