validateDirectories method
Validates that all required directories exist and are accessible.
Checks directory existence and permissions before proceeding with file operations.
Parameters:
directoryPaths: List of directory paths to validate
Returns a ValidationResult with validation findings.
Implementation
ValidationResult validateDirectories(List<String> directoryPaths) {
final errors = <ValidationError>[];
final warnings = <ValidationWarning>[];
final suggestions = <String>[];
for (final dirPath in directoryPaths) {
if (!exists(dirPath)) {
warnings.add(ValidationWarning(
message: 'Directory does not exist: $dirPath',
type: ValidationWarningType.general,
));
suggestions.add('Create the directory: $dirPath');
continue;
}
if (!Directory(dirPath).existsSync()) {
errors.add(ValidationError(
message: 'Path is not a directory: $dirPath',
type: ValidationErrorType.format,
));
suggestions.add('Ensure the path points to a directory');
continue;
}
// Test read permissions
try {
Directory(dirPath).listSync();
} catch (e) {
errors.add(ValidationError(
message: 'Cannot read directory: $dirPath - $e',
type: ValidationErrorType.permission,
));
suggestions.add('Check read permissions for the directory');
}
}
if (errors.isNotEmpty) {
return ValidationResult.failure(
errors: errors,
warnings: warnings,
suggestions: suggestions,
);
}
return ValidationResult.success(
warnings: warnings,
suggestions: suggestions,
);
}