NeoTheChallenger Ответов: 4

Найти все диск размер жесткого диска


Всем Привет,
Может ли кто-нибудь сказать мне, как найти размер всех дисков, присутствующих на моем жестком диске? :doh:

4 Ответов

Рейтинг:
2

Henry Minute

Вы имеете в виду, что у вас есть жесткий диск с несколькими разделами, и вы хотите знать размер каждого раздела, или вы просто хотите знать размеры жестких дисков в вашем компьютере?

Если последнее, то я подозреваю, что вы не удосужились найти ответ на этот вопрос. Простой поиск по размер диска c# это даст вам много решений.


Рейтинг:
2

Abhinav S

Вот один[^] ссылка. Для этого есть множество доступных в интернете вариантов.


Рейтинг:
2

Hesham_h4

Вы можете использовать класс DriveInfo:

double totalhddsize = 0;
foreach (DriveInfo info in DriveInfo.GetDrives())
{
    if (info.IsReady && info.DriveType == DriveType.Fixed)
    {
        totalhddsize += info.TotalSize;
    }
}


Но имейте в виду, что это может занять некоторое время с большими дисками, чтобы получить размер, поэтому предпочтительнее использовать BackgroundWorker, чтобы ваша программа не отвечала на некоторое время.


Рейтинг:
1

NeoTheChallenger

Вот и мы...
я просто беру один элемент управления listbox в своей форме с именем "lboxDrives" ,а затем на одной кнопке с именем "Info" пишется следующий код:


private void btnDriveInfo_Click(object sender, EventArgs e)
       {
           string[] GetDrives = Environment.GetLogicalDrives();
               if (lboxDrives.Items.Count > 0)
               return;
           foreach (string  item in GetDrives )
           {

               string drive;
               drive = item;
               DriveInfo GetInfo = new DriveInfo(item);
               if (GetInfo.DriveType == DriveType.CDRom || GetInfo.DriveType == DriveType.Network)
               {

                   continue;

               }


               long freeSpace = GetInfo.AvailableFreeSpace;
               double freeSpaceinGB = freeSpace / (1024 * 1024 * 1024);
               drive += "("+freeSpaceinGB+" GB Free)";
               lboxDrives.Items.Add(drive);
                         }