87 lines
2.3 KiB
C#
87 lines
2.3 KiB
C#
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);
|
||
}
|
||
}
|
||
}
|
||
}
|