using System.IO; using System.Linq; namespace Common { public static class FileExt { public static void WriteAllBytesUpdate(string fileName, byte[] content) { if (File.Exists(fileName)) { byte[] previousContent = File.ReadAllBytes(fileName); if (!previousContent.SequenceEqual(content)) File.WriteAllBytes(fileName, content); } else File.WriteAllBytes(fileName, content); } public static void WriteAllTextUpdate(string fileName, string content) { if (File.Exists(fileName)) { string previousContent = File.ReadAllText(fileName); if (previousContent != content) File.WriteAllText(fileName, content); } else File.WriteAllText(fileName, content); } public static string GetExactPathName(string pathName) { if (!(File.Exists(pathName) || Directory.Exists(pathName))) return pathName; var di = new DirectoryInfo(pathName); if (di.Parent != null) { return Path.Combine( GetExactPathName(di.Parent.FullName), di.Parent.GetFileSystemInfos(di.Name)[0].Name); } else { return di.FullName.ToUpper(); } } } }