validateFile method
Validate that a region's file exists and optionally check its size.
Returns a FileValidationResult with details about the file state.
Implementation
Future<FileValidationResult> validateFile(String regionName) async {
final metadata = getByRegion(regionName);
if (metadata == null) {
return FileValidationResult(
regionName: regionName,
exists: false,
hasMetadata: false,
);
}
final file = File(metadata.filePath);
final exists = await file.exists();
if (!exists) {
return FileValidationResult(
regionName: regionName,
exists: false,
hasMetadata: true,
expectedPath: metadata.filePath,
);
}
final actualSize = await file.length();
final sizeMatches = actualSize == metadata.fileSize;
return FileValidationResult(
regionName: regionName,
exists: true,
hasMetadata: true,
expectedPath: metadata.filePath,
actualSize: actualSize,
expectedSize: metadata.fileSize,
sizeMatches: sizeMatches,
);
}