using System.IO;
namespace IStation.DAL
{
///
/// 文件辅助类
///
public class FileHelper
{
private const string _extension = ".txt";//文件扩展名
///
/// 查询数据文件夹路径
///
public static string GetDataPath()
{
var path = Path.Combine(LocalFileConfig.RootDirectory, "Data");
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
return path;
}
///
/// 查询工作文件夹路径
///
public static string GetWorkPath()
{
var dataPath = GetDataPath();
var workPath = Path.Combine(dataPath, LocalFileConfig.WorkFolder);
if (!Directory.Exists(workPath))
Directory.CreateDirectory(workPath);
return workPath;
}
///
/// 查询版本文件夹路径
///
public static string GetVersionsPath()
{
var workPath = GetWorkPath();
var projectPath = Path.Combine(workPath, LocalFileConfig.Versions);
if (!Directory.Exists(projectPath))
Directory.CreateDirectory(projectPath);
return projectPath;
}
///
/// 查询文件路径
///
public static string GetFilePath(string folderPath) where T : class
{
if (!Directory.Exists(folderPath))
Directory.CreateDirectory(folderPath);
var objType = typeof(T);
var fileName = Path.Combine(folderPath, objType.Name + _extension);
return fileName;
}
///
/// 保存对象到文件中
///
public static void SaveObjectFile(string fileName, T t) where T : class
{
var str = JsonHelper.Object2FormatJson(t);
File.WriteAllText(fileName, str);
}
///
/// 查询文件对象
///
public static T GetFileObject(string fileName) where T : class
{
if (!File.Exists(fileName))
return default;
var str = File.ReadAllText(fileName);
if (string.IsNullOrEmpty(str))
return default;
return JsonHelper.Json2Object(str);
}
///
/// 查询ID
///
public static long NextId()
{
return SnowflakeIdHelper.NextId();
}
}
}