Exemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="logPath"></param>
 /// <param name="days"></param>
 public static void DeleteByDate(string logPath, int days)
 {
     Files.DeleteOldFiles(logPath, days);
 }
Exemplo n.º 2
0
        /// <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?
            }
        }