public static void GetInfoAboutDisks() { PISLog.Log($"Получаем информацию о дисках..."); Console.WriteLine($"Получаем информацию о дисках..."); foreach (DriveInfo di in DriveInfo.GetDrives()) { PISLog.Log($"Имя: {di.Name}, объем: {di.TotalSize}, доступно: {di.TotalFreeSpace}, метка: {di.VolumeLabel}"); Console.WriteLine($"Имя: {di.Name}, объем: {di.TotalSize}, доступно: {di.TotalFreeSpace}, метка: {di.VolumeLabel}"); } }
public static void GetCountOfFiles(string path) { PISLog.Log($"Получение количества файлов...", path); Console.WriteLine($"Получение количества файлов... | {path}"); if (Directory.Exists(path)) { DirectoryInfo di = new DirectoryInfo(path); PISLog.Log($"Файлов в каталоге: {di.GetFiles().Length}"); Console.WriteLine($"Файлов в каталоге: {di.GetFiles().Length}"); } { PISLog.Log("Каталог не найден!"); Console.WriteLine("Каталог не найден!"); } }
public static void GetFullPath(string fileName) { PISLog.Log("Получение полного пути к файлу...", fileName); Console.WriteLine($"Получение полного пути к файлу... | {fileName}"); if (File.Exists(fileName)) { FileInfo fi = new FileInfo(fileName); PISLog.Log($"Путь: {fi.FullName}"); Console.WriteLine($"Путь: {fi.FullName}"); } else { PISLog.Log($"Файл не найден!"); Console.WriteLine($"Файл не найден!"); } }
public static void GetCreatingTime(string fileName) { PISLog.Log("Получение даты создания файла...", fileName); Console.WriteLine($"Получение даты создания файла... | {fileName}"); if (File.Exists(fileName)) { FileInfo fi = new FileInfo(fileName); PISLog.Log($"Дата создания: {fi.CreationTime}"); Console.WriteLine($"Дата создания: {fi.CreationTime}"); } else { PISLog.Log($"Файл не найден!"); Console.WriteLine($"Файл не найден!"); } }
public static void GetFileInfo(string fileName) { PISLog.Log("Получение информации о файле.", fileName); Console.WriteLine($"Получение информации о файле... | {fileName}"); if (File.Exists(fileName)) { FileInfo fi = new FileInfo(fileName); PISLog.Log($"Имя: {fi.Name}, расширение: {fi.Extension}, размер: {fi.Length} байт"); Console.WriteLine($"Имя: {fi.Name}, расширение: {fi.Extension}, размер: {fi.Length} байт"); } else { PISLog.Log($"Файл не найден!"); Console.WriteLine($"Файл не найден!"); } }
public static void GetFullPath(string path) { PISLog.Log($"Получение пути...", path); Console.WriteLine($"Получение пути... | {path}"); if (Directory.Exists(path)) { DirectoryInfo di = new DirectoryInfo(path); PISLog.Log($"Родительский каталог: {di.Parent.FullName}"); Console.WriteLine($"Родительский каталог: {di.Parent.FullName}"); } else { PISLog.Log("Каталог не найден!"); Console.WriteLine("Каталог не найден!"); } }
public static void GetCountOfSubfolders(string path) { PISLog.Log($"Получение количества подкаталогов...", path); Console.WriteLine($"Получение количества подкаталогов... | {path}"); if (Directory.Exists(path)) { DirectoryInfo di = new DirectoryInfo(path); PISLog.Log($"Подкаталогов: {di.GetDirectories().Length}"); Console.WriteLine($"Подкаталогов: {di.GetDirectories().Length}"); } else { PISLog.Log("Каталог не найден!"); Console.WriteLine("Каталог не найден!"); } }
public static void GetCreateTime(string path) { PISLog.Log("Получение даты создания каталога...", path); Console.WriteLine($"Получение даты создания каталога... | {path}"); if (Directory.Exists(path)) { DirectoryInfo di = new DirectoryInfo(path); PISLog.Log($"Дата создания: {di.CreationTime}"); Console.WriteLine($"Дата создания: {di.CreationTime}"); } else { PISLog.Log($"Каталог не найден!"); Console.WriteLine($"Каталог не найден!"); } }
public static void GetFreeSpace(string diskName) { PISLog.Log($"Попытка узнать свободное место на диске: {diskName}"); Console.WriteLine($"Попытка узнать свободное место на диске: {diskName}"); DriveInfo di = new DriveInfo(diskName); try { PISLog.Log($"Свободно: {di.TotalFreeSpace / (1024 * 1024)} МБ"); Console.WriteLine($"Свободно: {di.TotalFreeSpace / (1024 * 1024)} МБ"); } catch { PISLog.Log($"Диск {diskName} не найден!"); Console.WriteLine($"Диск {diskName} не найден!"); } }
public static void GetFileSystem(string diskName) { PISLog.Log($"Попытка узнать файловую систему диска: {diskName}"); Console.WriteLine($"Попытка узнать файловую систему диска: {diskName}"); DriveInfo di = new DriveInfo(diskName); try { PISLog.Log($"ФС установлена: {di.DriveFormat}"); Console.WriteLine($"ФС установлена: {di.DriveFormat}"); } catch { PISLog.Log("Не удалось распознать ФС!"); Console.WriteLine("Не удалось распознать ФС!"); } }
/// <summary> /// Выводит на экран список файлов и папок заданного диска /// </summary> public static void GetFolderBody(string diskName) { Directory.CreateDirectory("PISInspect"); sw = new StreamWriter("PISInspect\\pisdirinfo.txt"); PISLog.Log($"Попытка вывода файлов и папок диска {diskName}..."); Console.WriteLine($"Попытка вывода файлов и папок диска {diskName}..."); DriveInfo di = new DriveInfo(diskName); try { WriteFolder(di.RootDirectory.FullName, 0); } catch { PISLog.Log($"Диск {diskName} не найден!"); Console.WriteLine($"Диск {diskName} не найден!"); return; } sw.Close(); Console.ForegroundColor = ConsoleColor.Gray; PISLog.Log("Обход окончен!"); Console.WriteLine("Обход окончен!"); }
static void Main() { // ПОДГОТОВКА К РАБОТЕ: УДАЛЕНИЕ ФАЙЛОВ С ПРОШЛОГО ЗАПУСКА !!! Console.Write("Инициализация..."); Initiaization(); Console.WriteLine("ок."); PISDriveInfo.GetFileSystem("D"); Console.WriteLine(); PISDriveInfo.GetFreeSpace("H"); Console.WriteLine(); PISDriveInfo.GetInfoAboutDisks(); Console.WriteLine(); PISFileInfo.GetFullPath("pislogfile.txt"); Console.WriteLine(); PISFileInfo.GetFileInfo("pislogfile.txt"); Console.WriteLine(); PISFileInfo.GetCreatingTime("pislogfile.txt"); Console.WriteLine(); PISDirInfo.GetCountOfFiles("D:\\Файлы пользователя\\Рабочий стол\\ООП\\OOP\\Dick Figures"); Console.WriteLine(); PISDirInfo.GetCountOfSubfolders("D:\\Файлы пользователя\\Рабочий стол\\ООП\\OOP\\Dick Figures"); Console.WriteLine(); PISDirInfo.GetCreateTime("D:\\Файлы пользователя\\Рабочий стол\\ООП\\OOP\\Dick Figures"); Console.WriteLine(); PISDirInfo.GetFullPath("D:\\Файлы пользователя\\Рабочий стол\\ООП\\OOP\\Dick Figures"); Console.WriteLine(); // задание а PISFileManager.GetFolderBody("G"); Console.WriteLine(); if (File.Exists("PISInspect\\DriveInfo.txt")) { File.Delete("PISInspect\\DriveInfo.txt"); } File.Copy("PISInspect\\pisdirinfo.txt", "PISInspect\\DriveInfo.txt"); PISLog.Log("Скопирован файл", "из PISInspect\\pisdirinfo.txt в PISInspect\\DriveInfo.txt"); Console.WriteLine("Скопирован файл из PISInspect\\pisdirinfo.txt в PISInspect\\DriveInfo.txt"); Console.WriteLine(); File.Delete("PISInspect\\pisdirinfo.txt"); PISLog.Log("Удален файл PISInspect\\pisdirinfo.txt"); Console.WriteLine("Удален файл PISInspect\\pisdirinfo.txt"); Console.WriteLine(); // б var di = Directory.CreateDirectory("PISFiles"); Console.WriteLine("Создан каталог: " + di.FullName); PISLog.Log("Создан каталог ", di.FullName); Console.WriteLine(); DirectoryInfo di2 = new DirectoryInfo("D:\\Файлы пользователя\\Рабочий стол\\КСиС"); foreach (FileInfo a in di2.GetFiles()) { if (a.Extension == ".txt") { if (File.Exists("PISFiles\\" + a.Name)) { File.Delete("PISFiles\\" + a.Name); } File.Copy(a.FullName, "PISFiles\\" + a.Name); PISLog.Log("Скопирован файл", $"из {a.FullName} в PISInspect\\{a.Name}"); Console.WriteLine($"Скопирован файл из {a.FullName} в PISInspect\\{a.Name}"); } } Console.WriteLine(); Directory.Move("PISFiles", "PISInspect\\PISFiles"); Console.WriteLine("Перемещен каталог PISFiles -> PISInspect\\PISFiles"); PISLog.Log("Перемещен каталог", "PISFiles -> PISInspect\\PISFiles"); Console.WriteLine(); ZipFile.CreateFromDirectory("PISInspect\\PISFiles", "archive.zip"); Console.WriteLine("Архивация файлов папки PISInspect\\PISFiles..."); PISLog.Log("Архивация файлов папки", "PISInspect\\PISFiles"); Console.WriteLine(); Directory.CreateDirectory("archiveFiles"); Console.WriteLine("Создан каталог archiveFiles"); PISLog.Log("Создан каталог", "archiveFiles"); Console.WriteLine(); ZipFile.ExtractToDirectory("archive.zip", "archiveFiles"); Console.WriteLine("Распаковка архива archive.zip в каталог archiveFiles..."); PISLog.Log("Распаковка архива", "archive.zip -> archiveFiles"); Console.WriteLine(); //Console.Clear(); Console.WriteLine("Обработка лог-файла.\nЧтение файла..."); StringBuilder log = new StringBuilder(File.ReadAllText("pislogfile.txt")); Console.WriteLine("\nВывод отчета за 08.12.2019"); log.Remove(0, log.ToString().IndexOf("НОВЫЙ ЗАПУСК: 08.12.2019")); int deleteEnd = log.ToString().IndexOf("НОВЫЙ ЗАПУСК"); Console.WriteLine("Первая точка: " + deleteEnd); deleteEnd = log.ToString().IndexOf("НОВЫЙ ЗАПУСК", deleteEnd + 1); Console.WriteLine("Вторая точка: " + deleteEnd); Console.WriteLine("Длина строки: " + log.Length); log.Remove(deleteEnd, log.Length - deleteEnd); Console.WriteLine(log); Console.WriteLine("Вывод лога за последний час..."); log = new StringBuilder(File.ReadAllText("pislogfile.txt")); Console.WriteLine("Текущий час: " + DateTime.Now.TimeOfDay.Hours.ToString()); // delete part string day, month, h; if (DateTime.Now.Day < 10) { day = "0" + DateTime.Now.Day; } else { day = DateTime.Now.Day.ToString(); } if (DateTime.Now.Month < 10) { month = "0" + DateTime.Now.Month; } else { month = DateTime.Now.Month.ToString(); } if (DateTime.Now.Hour < 10) { h = "0" + DateTime.Now.Hour; } else { h = DateTime.Now.Hour.ToString(); } deleteEnd = log.ToString().IndexOf($"НОВЫЙ ЗАПУСК: {day}.{month}.{DateTime.Now.Date.Year} {h}"); // НЕ ПЕРЕПИСЫВАЕМ САМ ФАЙЛ, ЧТОБЫ НЕ ТЕРЯТЬ ДАННЫЕ ! Console.WriteLine("Символов для удаления: " + deleteEnd + ", полный размер: " + log.Length); log.Remove(0, deleteEnd - 1); Console.WriteLine(log); Console.Write("\nDONE."); Console.ReadLine(); }