Files
loongyan/bin/config/app_config.dart
2026-03-21 22:13:31 +08:00

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)';
}