SclBytes() public static method

Форматирует размер файла для удобства пользователя. Файлы от 0 до 1 КБ - 1 записываются в байтах, от 1 КБ до 1 МБ - 1 - в килобайтах, от 1 МБ до 1 ГБ - 1 - в мегабайтах.
public static SclBytes ( long InpNumber ) : string
InpNumber long Размер файла в байтах
return string
Esempio n. 1
0
        /// <summary>
        /// Метод, срабатывающий по окончании работы механизма поиска кандидатов
        /// на удаление в отдельном потоке.
        /// </summary>
        private void GttWrk_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            // Указываем сколько МБ освободится при удалении всех файлов...
            CM_Info.Text = String.Format(AppStrings.PS_FrFInfo, CoreLib.SclBytes(TotalSize));

            // Проверим есть ли кандидаты для удаления (очистки)...
            if (CM_FTable.Items.Count == 0)
            {
                // Выдадим сообщение если очищать нечего...
                MessageBox.Show(AppStrings.PS_LoadErr, Properties.Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Warning);

                // Отключим кнопку запуска очистки...
                CM_Clean.Enabled = false;

                // Закроем форму.
                Close();
            }
            else
            {
                // Включаем кнопку очистки...
                CM_Clean.Enabled = true;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Ищет и добавляет файлы для удаления в таблицу модуля очистки.
        /// </summary>
        /// <param name="CleanDirs">Каталоги для выполнения очистки с маской имени</param>
        /// <param name="Recursive">Включает / отключает рекурсивный поиск</param>
        private void DetectFilesForCleanup(List <String> CleanDirs, bool Recursive)
        {
            foreach (string DirMs in CleanDirs)
            {
                // Извлечём имя каталога с полным путём и маску...
                string CleanDir  = Path.GetDirectoryName(DirMs);
                string CleanMask = Path.GetFileName(DirMs);

                // Проверим чтобы каталог существовал...
                if (Directory.Exists(CleanDir))
                {
                    // Запускаем...
                    try
                    {
                        // Открываем каталог...
                        DirectoryInfo DInfo = new DirectoryInfo(CleanDir);

                        // Считываем список файлов по заданной маске...
                        FileInfo[] DirList = DInfo.GetFiles(CleanMask);

                        // Начинаем обход массива...
                        foreach (FileInfo DItem in DirList)
                        {
                            // Обрабатываем найденное. Добавляем...
                            ListViewItem LvItem = new ListViewItem(DItem.Name)
                            {
                                Checked     = !NoAutoCheck,                      // Помечаем флажком...
                                ToolTipText = Path.Combine(CleanDir, DItem.Name) // Указываем полный путь во всплывающую подсказку...
                            };

                            // Вычисляем и указываем размер и дату изменения...
                            LvItem.SubItems.Add(CoreLib.SclBytes(DItem.Length));
                            LvItem.SubItems.Add(DItem.LastWriteTime.ToString());

                            if (CM_FTable.InvokeRequired)
                            {
                                // Вставляем в таблицу...
                                Invoke((MethodInvoker) delegate() { CM_FTable.Items.Add(LvItem); });
                            }

                            TotalSize += DItem.Length; // Инкрементируем общий счётчик...
                        }

                        if (Recursive)
                        {
                            try
                            {
                                // Пройдём по подкаталогам рекурсивно. Получаем список вложенных...
                                List <String> SubDirs = new List <string>();

                                // Обойдём вложенные каталоги...
                                foreach (DirectoryInfo Dir in DInfo.GetDirectories())
                                {
                                    SubDirs.Add(Path.Combine(Dir.FullName, CleanMask));
                                }

                                // Проверим наличие элементов для обхода...
                                if (SubDirs.Count > 0)
                                {
                                    // Вызовем функцию рекурсивно...
                                    DetectFilesForCleanup(SubDirs, true);
                                }
                            }
                            catch (Exception Ex)
                            {
                                CoreLib.WriteStringToLog(Ex.Message);
                            }
                        }
                    }
                    catch (Exception Ex)
                    {
                        // Подавляем возможные сообщения и пишем в лог...
                        CoreLib.WriteStringToLog(Ex.Message);
                    }
                }
            }
        }