using System; using System.Collections.Generic; namespace Shared.Common { public class Global { /// /// 获取住宅文件夹下面的文件 /// /// File name. public static byte[] ReadFileByHomeId(string fileName) { var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName); return Shared.IO.FileUtils.ReadFile(path); } public static List FileListByHomeId() { var list = new List { }; var path = Config.Instance.FullPath; if (!System.IO.Directory.Exists(path)) { return new List { }; } var files = System.IO.Directory.GetFiles(path); foreach (var file in files) { var f = file.Substring(path.Length + 1); System.Console.WriteLine(f); list.Add(f); } return list; } /// /// 写文件到住宅文件夹目录 /// /// File name. /// Bytes. public static void WriteFileByBytesByHomeId(string fileName, byte[] bytes) { //如果没有存在住宅目录,先创建 if (!System.IO.Directory.Exists(Config.Instance.FullPath)) { System.IO.Directory.CreateDirectory(Config.Instance.FullPath); } var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName); Shared.IO.FileUtils.WriteFileByBytes(path, bytes); } /// /// 删除住宅下面的文件 /// /// File name. public static void DeleteFilebyHomeId(string fileName) { var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName); System.IO.File.Delete(path); } /// /// 是否存在当前文件 /// /// File name. public static bool IsExistsByHomeId(string fileName) { var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName); return System.IO.File.Exists(path); } /// /// 更新文件名称 /// /// Old file path. /// New file path. public static void ReNameFileByHomeId(string oldFilePath, string newFilePath) { if (oldFilePath == newFilePath) { return; } var fileInfo = new System.IO.FileInfo(Config.Instance.FullPath + oldFilePath); if (fileInfo.Exists) { DeleteFilebyHomeId(newFilePath); fileInfo.MoveTo(Config.Instance.FullPath + newFilePath); } } public static void CreateHomeDirectory(string homeId) { var path= System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, homeId); if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } } /// /// 在当前住宅文件夹下创建一个空的文件夹(tz) /// /// 需要创建的文件夹名字 /// 如果文件夹存在,是否需要清空文件夹 public static void CreateEmptyDirectory(string directoryName, bool clear = false) { string creatName = Config.Instance.FullPath; creatName = System.IO.Path.Combine(creatName, directoryName); if (!System.IO.Directory.Exists(creatName)) { System.IO.Directory.CreateDirectory(creatName); } else if (clear == true) { //如果存在,则清空全部文件 var files = System.IO.Directory.GetFiles(creatName); foreach (var file in files) { System.IO.File.Delete(file); } } } /// /// 将信息写入指定的文件夹里(根目录为当前住宅的文件夹)(tz) /// /// 指定的文件夹路径 /// 文件名 /// 内容 public static void WriteFileToDirectoryByBytes(string directoryName, string fileName, byte[] bytes) { //先去创建它吧 Global.CreateEmptyDirectory(directoryName); //拼接路径 string fullName = Config.Instance.FullPath; fullName = System.IO.Path.Combine(fullName, directoryName); fullName = System.IO.Path.Combine(fullName, fileName); //写入内容 Shared.IO.FileUtils.WriteFileByBytes(fullName, bytes); } /// /// 读取指定的文件夹里的指定的文件(根目录为当前住宅的文件夹)(tz) /// /// 指定的文件夹路径 /// 文件名 public static byte[] ReadFileByDirectory(string directoryName, string fileName) { //拼接路径 string fullName = Config.Instance.FullPath; fullName = System.IO.Path.Combine(fullName, directoryName); fullName = System.IO.Path.Combine(fullName, fileName); if (System.IO.File.Exists(fullName) == false) { return null; } return Shared.IO.FileUtils.ReadFile(fullName); } /// /// 移动文件(tz) /// /// 需要移动的文件(FullName) /// 要移动到的位置(FullName) public static void MoveFileToDirectory(string oldFile, string newFile) { //先删除 if (System.IO.File.Exists(newFile) == true) { System.IO.File.Delete(newFile); } System.IO.File.Move(oldFile, newFile); } /// /// 将指定文件夹里面的全部文件移动到当前住宅的文件夹内(tz) /// /// /// 处理完之后,是否把文件夹删除 public static void MoveDirectoryFileToHomeDirectory(string directory, bool deleteDirectory = false) { string rootPath = Config.Instance.FullPath; string fulldirectory = System.IO.Path.Combine(rootPath, directory); if (System.IO.Directory.Exists(fulldirectory) == false) { return; } var files = System.IO.Directory.GetFiles(fulldirectory); var listFile = new List(); foreach (var file in files) { var f = file.Substring(fulldirectory.Length + 1); listFile.Add(f); } foreach (var file in listFile) { string oldFile = System.IO.Path.Combine(fulldirectory, file); string newFile = System.IO.Path.Combine(rootPath, file); //移动文件 Global.MoveFileToDirectory(oldFile, newFile); } if (deleteDirectory == true) { System.IO.Directory.Delete(fulldirectory); } } } }