39 lines
1.3 KiB
C#
39 lines
1.3 KiB
C#
|
|
using System.IO;
|
||
|
|
|
||
|
|
namespace YY.Admin.Core.Util;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 当前用户可写应用数据目录(避免安装在 Program Files 时无写权限)。
|
||
|
|
/// </summary>
|
||
|
|
public static class AppWritablePaths
|
||
|
|
{
|
||
|
|
private static readonly string Root = Path.Combine(
|
||
|
|
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
|
||
|
|
"YY.Admin");
|
||
|
|
|
||
|
|
/// <summary>应用私有根目录:%LocalAppData%\YY.Admin</summary>
|
||
|
|
public static string LocalApplicationRoot => Root;
|
||
|
|
|
||
|
|
/// <summary>SQLite 等业务数据库目录。</summary>
|
||
|
|
public static string DataDirectory => Path.Combine(Root, "Data");
|
||
|
|
|
||
|
|
/// <summary>用户覆盖的配置、Jeecg 同步状态等。</summary>
|
||
|
|
public static string ConfigurationDirectory => Path.Combine(Root, "Configuration");
|
||
|
|
|
||
|
|
/// <summary>按账号划分的本地设置(对应 CommonConst.AppSettingsFilePath 前缀)。</summary>
|
||
|
|
public static string AccountSettingsRootDirectory => Path.Combine(Root, "AppSettings");
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 创建目录(若不存在)并返回路径。
|
||
|
|
/// </summary>
|
||
|
|
public static string EnsureDirectoryExists(string directoryPath)
|
||
|
|
{
|
||
|
|
if (!string.IsNullOrWhiteSpace(directoryPath))
|
||
|
|
{
|
||
|
|
Directory.CreateDirectory(directoryPath);
|
||
|
|
}
|
||
|
|
|
||
|
|
return directoryPath;
|
||
|
|
}
|
||
|
|
}
|