/// <summary> /// /// </summary> /// <param name="logPath"></param> /// <param name="days"></param> public static void DeleteByDate(string logPath, int days) { Files.DeleteOldFiles(logPath, days); }
/// <summary> /// /// </summary> /// <param name="logPath"></param> public static void DeleteToSaveSpace(string logPath) { DirectoryInfo dInfo = new DirectoryInfo(logPath); int OldestDate = GetOldestFile(logPath); int numFiles = Files.numFilesinDirectory(logPath); decimal dirSize = Files.directorySize(dInfo); // Older than 31 days, More than 1,000 files, or has 10MB in folder if ((OldestDate > 30) || (numFiles > 999) || dirSize > 10) { while ((numFiles > 999 || OldestDate > 30) || dirSize > 10) { DeleteByDate(logPath, OldestDate); numFiles = Files.numFilesinDirectory(logPath); OldestDate = GetOldestFile(logPath); dirSize = Files.directorySize(dInfo); //Console.WriteLine(String.Format("Round 1: | NumFiles: {0,-10} | OldestDate: {1,5} | DirSize {2,10} |", numFiles, OldestDate, dirSize)); System.Threading.Thread.Sleep(5); } } // Older than 11 through 30 days, have 200 through 999 files if (Enumerable.Range(11, 30).Contains(OldestDate) || (Enumerable.Range(200, 999).Contains(numFiles))) { while (Enumerable.Range(11, 30).Contains(OldestDate) || (Enumerable.Range(200, 999).Contains(numFiles))) { DeleteByDate(logPath, OldestDate); numFiles = Files.numFilesinDirectory(logPath); OldestDate = GetOldestFile(logPath); dirSize = Files.directorySize(dInfo); System.Threading.Thread.Sleep(5); } } // Keep files betwen 5 to 10 days under 100 files. if (Enumerable.Range(5, 10).Contains(OldestDate) & numFiles > 100) { while (Enumerable.Range(5, 10).Contains(OldestDate) & numFiles > 100) { DeleteByDate(logPath, OldestDate); numFiles = Files.numFilesinDirectory(logPath); OldestDate = GetOldestFile(logPath); dirSize = Files.directorySize(dInfo); System.Threading.Thread.Sleep(5); } } else { //ToDo: Need to do anything? } }