WorkCamera/client/WorkCameraExport/Services/PathService.cs
2026-01-06 00:42:25 +08:00

87 lines
2.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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