private void CheckForFreeEspace(Object sender, ElapsedEventArgs e) { try { FreeSpaceDisk freeSpaceDisk = new FreeSpaceDisk(); // method that performs disk scan and cleanup freeSpaceDisk.StartSpaceCleaner(); } catch (Exception ex) { LogGenerators.CreateLogErrorsCleaner(ex.Message); } }
/// <summary> /// returns converted file size from byte to long /// </summary> /// <param name="filename">file path</param> /// <returns>long</returns> private static long GetFileLength(string filename) { long length = 0; try { FileInfo fi = new FileInfo(filename); length = fi.Length; } catch (FileNotFoundException e) { LogGenerators.CreateLogErrorsCleaner(e.Message); length = 0; } return(length); }
/// <summary> /// Method responsible for initiating file and folder cleaning and verification process /// </summary> public void StartSpaceCleaner() { try { bool allowFreeSpace = this.CanFreeSpace("C"); // If the disk is in critical space cleaning will be performed if (allowFreeSpace) { DeleteDirectories(); DeleteFiles(); LogGenerators.CreateLogRunCleaner("LIMPEZA DE DISCO REALIZADA COM SUCESSO"); } } catch (Exception e) { LogGenerators.CreateLogErrorsCleaner(e.Message); } }
/// <summary> /// Removes all files from the directory, but the given directory is not deleted. /// </summary> /// <returns>Returns value with size of deleted files.</returns> private long DeleteFiles() { long fileSize = 0; if (!String.IsNullOrEmpty(directoryTempFiles)) { try { String[] directories = directoryTempFiles.Split(';'); foreach (String path in directories) { if (!String.IsNullOrEmpty(path) && Directory.Exists(path)) { var listFiles = Directory.GetFiles(path); foreach (var file in listFiles) { try { long fileSizeTmp = GetFileLength(file); File.Delete(file); fileSize += fileSizeTmp; } catch (Exception e) { LogGenerators.CreateLogErrorsCleaner(e.Message); } } } } } catch (Exception e) { LogGenerators.CreateLogErrorsCleaner(e.Message); } } return(fileSize); }
/// <summary> /// Get available disk space and return the value converted to Gigabyte /// </summary> /// <param name="unity">disc that will be checked</param> /// <returns>double</returns> private double GetCurrentPercentageAvailableSpace(String unity) { double percent = 0; try { DriveInfo driveInfo = new DriveInfo(unity); long availableFreeSpace = driveInfo.AvailableFreeSpace; long totalSpace = driveInfo.TotalSize; double availableFreeSpaceGiga = Converters.ConvertByteInGiga((double)availableFreeSpace); double totalSpaceGiga = Converters.ConvertByteInGiga((double)totalSpace); percent = (availableFreeSpaceGiga * 100) / totalSpaceGiga; } catch (Exception e) { LogGenerators.CreateLogErrorsCleaner(e.Message); } return(percent); }
/// <summary> /// Removes all directories recursively from the given directory, but the given directory is not deleted. /// </summary> /// <returns>Returns value with size of deleted files and folders.</returns> private long DeleteDirectories() { long directorySize = 0; if (!String.IsNullOrEmpty(directoryTempFiles)) { try { String[] directories = directoryTempFiles.Split(';'); foreach (String path in directories) { if (!String.IsNullOrEmpty(path) && Directory.Exists(path)) { var listDirectories = Directory.GetDirectories(path, "*.*", SearchOption.AllDirectories); foreach (var dir in listDirectories) { try { Directory.Delete(dir, true); } catch (Exception e) { LogGenerators.CreateLogErrorsCleaner(e.Message); } } } } } catch (Exception e) { LogGenerators.CreateLogErrorsCleaner(e.Message); } } return(directorySize); }