Example #1
0
        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);
            }
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
            }
        }
Example #4
0
        /// <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);
        }
Example #5
0
        /// <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);
        }
Example #6
0
        /// <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);
        }