namespace WorkCameraExport.Services
{
///
/// 路径服务 - 统一管理所有文件路径,全部基于 exe 所在目录
///
public static class PathService
{
private static readonly string _baseDir;
static PathService()
{
// 使用 AppContext.BaseDirectory,兼容单文件发布
_baseDir = AppContext.BaseDirectory.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
}
///
/// 获取基础目录(exe 所在目录)
///
public static string BaseDirectory => _baseDir;
///
/// 获取设置文件路径
///
public static string SettingsFile => Path.Combine(_baseDir, "settings.json");
///
/// 获取配置文件路径
///
public static string ConfigFile => Path.Combine(_baseDir, "config.json");
///
/// 获取凭证文件路径
///
public static string CredentialsFile => Path.Combine(_baseDir, "credentials.dat");
///
/// 获取日志目录
///
public static string LogDirectory
{
get
{
var dir = Path.Combine(_baseDir, "logs");
EnsureDirectoryExists(dir);
return dir;
}
}
///
/// 获取临时文件目录
///
public static string TempDirectory
{
get
{
var dir = Path.Combine(_baseDir, "temp");
EnsureDirectoryExists(dir);
return dir;
}
}
///
/// 获取导出目录
///
public static string ExportDirectory
{
get
{
var dir = Path.Combine(_baseDir, "Export");
EnsureDirectoryExists(dir);
return dir;
}
}
///
/// 确保目录存在
///
private static void EnsureDirectoryExists(string path)
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
}
}
}