import 'dart:io'; /// 应用配置管理 /// /// 支持通过环境变量配置数据目录和缓存目录: /// - `DATA_DIR`: 数据目录路径,默认为 `data` /// - `CACHE_DIR`: 缓存目录路径,默认为 `cache` class AppConfig { /// 数据目录路径 final String dataDir; /// 缓存目录路径 final String cacheDir; /// 单例实例 static final AppConfig _instance = AppConfig._fromEnvironment(); /// 获取配置实例 factory AppConfig() => _instance; /// 从环境变量创建配置 AppConfig._fromEnvironment() : dataDir = Platform.environment['DATA_DIR'] ?? 'data', cacheDir = Platform.environment['CACHE_DIR'] ?? 'cache'; /// 获取相册预览缓存目录 String get previewCacheDir => '$cacheDir/preview'; /// 确保所有必需的目录都存在 Future ensureDirectoriesExist() async { await Directory(dataDir).create(recursive: true); await Directory(previewCacheDir).create(recursive: true); } @override String toString() => 'AppConfig(dataDir: $dataDir, cacheDir: $cacheDir)'; }