using System; using System.IO; using Core.Main; namespace Core.Helper { public static class FileHelper { public static void WriteTextToFile(string folderPath, string fileName, string text) { FileHelper.WriteTextToFile(folderPath, fileName, text, Constants.confMinDate, Constants.confMinDate); } public static void WriteTextToFile(string folderPath, string fileName, string text, DateTime creationTime, DateTime lastWriteTime) { if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } File.WriteAllText(folderPath + fileName, text); if (creationTime != Constants.confMinDate) { File.SetCreationTimeUtc(folderPath + fileName, creationTime); } if (lastWriteTime != Constants.confMinDate) { File.SetLastWriteTimeUtc(folderPath + fileName, lastWriteTime); } } public static void CreateBackup(string filePath, string backupFolder) { FileHelper.CreateBackup(filePath, backupFolder, ""); } public static void CreateBackup(string filePath, string backupFolder, string backupFileName) { if (!Directory.Exists(backupFolder)) { Directory.CreateDirectory(backupFolder); } FileInfo file = new FileInfo(filePath); string backupFilePath = backupFolder + DateTime.Now.ToString("yyyy-MM-dd_HH.mm.ss") + "_" + file.Name; if (!backupFileName.Equals("")) { backupFilePath = backupFolder + backupFileName; } File.Copy(file.FullName, backupFilePath, true); } public static void CleanupFilesMinutes(string folderPath, int maxMinutes) { if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } DirectoryInfo folder = new DirectoryInfo(folderPath); foreach (FileInfo file in folder.GetFiles()) { DateTime maxAge = DateTime.UtcNow.AddMinutes(-maxMinutes); if (file.LastWriteTimeUtc < maxAge) { File.Delete(file.FullName); } } } public static void CleanupFiles(string folderPath, int maxHours) { if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } DirectoryInfo folder = new DirectoryInfo(folderPath); foreach (FileInfo file in folder.GetFiles()) { DateTime maxAge = DateTime.UtcNow.AddHours(-(maxHours + 1)); if (file.LastWriteTimeUtc < maxAge) { File.Delete(file.FullName); } } } } }