foreach (var drive in DriveInfo.GetDrives())
{
string DiskName = string.Format("Название диска - {0}", drive.Name);
string DiskType = string.Format("Тип диска - {0}", drive.DriveType);
if (drive.IsReady) // Проверяем готов ли диск
{
string DiskM = string.Format("Метка диска - {0}", drive.VolumeLabel);
string TypeFSystem = string.Format("Тип файловой системы - {0}", drive.DriveFormat);
string DiskClearMb = string.Format("Общее доступное место - {0} мб", GetSizeInMegabytes(drive.TotalSize));
string DiskAllClearMb = string.Format("Всё свободное место - {0} мб", GetSizeInMegabytes(drive.TotalFreeSpace)); GetSizeInMegabytes(drive.AvailableFreeSpace);
try
{
using (StreamWriter myWriter = new StreamWriter(path))
{
myWriter.WriteLine(DiskName + "\n" + DiskType + "\n" + DiskM + "\n" + TypeFSystem + "\n" + DiskClearMb + "\n" + DiskAllClearMb + "\n");
}
}
catch
{
Console.WriteLine("Error");
}
}
}
long GetSizeInMegabytes(long bytes)
{
return bytes / 1024 / 1024;
}
Должен показывать инфу о всех дисках, а показывает только о диске D. Почему?
Вот эта строка: new StreamWriter(path)
- каждый раз создает новый файл, затирая предыдущее содержимое. В итоге в файле оказывается информация о самом последнем диске.
Я бы переписал код следующим образом:
using (var writer = new StreamWriter(path))
{
foreach (var drive in DriveInfo.GetDrives())
{
if (drive.IsReady)
{
writer.WriteLine("Название диска - {0}", drive.Name);
writer.WriteLine("Тип диска - {0}", drive.DriveType);
writer.WriteLine("Метка диска - {0}", drive.VolumeLabel);
writer.WriteLine("Тип файловой системы - {0}", drive.DriveFormat);
writer.WriteLine("Общее доступное место - {0} мб", GetSizeInMegabytes(drive.TotalSize));
writer.WriteLine("Всё свободное место - {0} мб", GetSizeInMegabytes(drive.TotalFreeSpace));
writer.WriteLine();
}
}
}
Пишем сразу в поток. Метод WriteLine
имеет перегрузку, принимающую строку формата.
Промежуточные переменные не нужны. Хотя можно их оставить - иногда они улучшают читаемость и упрощают понимание кода.
Обработка исключений - по вкусу.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Проблема в следующем: мне нужно из какой-либо папки получить список файловТо есть я пробегаю по папке, проверяю каждый файл, и если формат...
Я использую вот такой метод погрузки данных в comboBox
Есть примерно такой простой код:
Написал приложение, которое мониторит папку, если файл есть, то копирует его в другую папку, но с нужным именемЭто в кратце