37 lines
1.1 KiB
Dart
37 lines
1.1 KiB
Dart
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<void> ensureDirectoriesExist() async {
|
|
await Directory(dataDir).create(recursive: true);
|
|
await Directory(previewCacheDir).create(recursive: true);
|
|
}
|
|
|
|
@override
|
|
String toString() => 'AppConfig(dataDir: $dataDir, cacheDir: $cacheDir)';
|
|
} |