Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/100: Рейтинг темы: голосов - 100, средняя оценка - 4.67
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
1

Определить размер свободного места на локальном диске (вопрос по производительности)

01.02.2010, 23:22. Показов 19278. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Вот так узнаю свободное место на диске:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            DriveInfo[] allDrives = DriveInfo.GetDrives();
            foreach (DriveInfo MyDriveInfo in allDrives)
            {
                 if (MyDriveInfo.IsReady == true)
                 {
                      if (MyDriveInfo.Name == "M:\\")
                     {
                          double free = MyDriveInfo.AvailableFreeSpace;
                          double a = (free / 1024) / 1024;
 
                          MessageBox.Show("label: " + MyDriveInfo.VolumeLabel + " Available space : " + Convert.ToString(a) );
 
                     }
                 }
            }
код отрабатывает секунды 4-5 и выдает ответ, у меня 2 ядра, 2 гига оперативы, почему такая дикая задержка, может быть на с++ наваять и с своего приложения запускать єкзешник с параметром диска например. Или может можно с C# вызывать WIN API функцию, Если это (WIN API ) будет быстрей, подскажите пж как ее вызывать в C#
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2010, 23:22
Ответы с готовыми решениями:

Определить размер свободного места на диске
Пространство на диске

Размер свободного места на диске
Как узнать размер свободного пространства на диске в мегабайтах???

Почему постоянно увеличивается размер свободного места на диске С:?
Всем привет. Помогите разобраться в таком явлении: дней 5 наблюдаю постоянное увеличение...

Определить, сколько осталось свободного места на жёстком диске
Подскажите можно ли на Delphi узнать сколько осталось места на жёстком диске? Или как придумать...

2
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
02.02.2010, 00:52 2
Странно, чутка изменил ваш код и зассунул в баттон клик.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double free = 0;
double a = 0;
string Vol = "";
DriveInfo[] allDrives = DriveInfo.GetDrives();
     foreach (DriveInfo MyDriveInfo in allDrives)
     {
          if (MyDriveInfo.IsReady == true)
          {
          free = MyDriveInfo.AvailableFreeSpace;
          a = (free / 1024) / 1024;
          Vol += MyDriveInfo.Name + ": " + a.ToString("#.##") + Environment.NewLine;
          }
      }
MessageBox.Show(Vol);
Выдало все мгновенно. Если вам для конкретного диска получить размер надо
помойму лучше так:
C#
1
2
3
DriveInfo di = new DriveInfo(@"F:\");
double Ffree = (di.AvailableFreeSpace/1024)/1024;
MessageBox.Show(Ffree.ToString("#,##") + " MB");
1
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
02.02.2010, 06:38  [ТС] 3
действительно странно, попробовал переделанный код, засек время, инфу по всем дискам выдает ровно за 5 секунд.

а вот этот
C#
1
2
3
            DriveInfo di = new DriveInfo(@"F:\");
            double Ffree = (di.AvailableFreeSpace / 1024) / 1024;
            MessageBox.Show(Ffree.ToString("#,##") + " MB");
выдает мгновенно

Видать из-за того что у меня 6 логических дисков и надо время чтоб выгрести GetDrives(); все.

Art спасибо!!!!!!!!
1
02.02.2010, 06:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2010, 06:38
Помогаю со студенческими работами здесь

Сменить каталог на С:\, определить объём свободного места на диске
Написать программу на ассемблере под MS DOS, которая сменит каталог на С:\, определит объём...

Определить общее количество ОЗУ и свободного места на системном диске
Доброго времени суток. Нужно определить общее количество оперативной памяти и свободного места...

Модуль DOS - Определить количество свободного места на съёмном диске
Определить количество свободного места на съёмном диске, если имеется больше 10 Мбайт свободного...

«Модуль DOS».Определить количество свободного места на съемном диске.
Определить количество свободного места на съемном диске, если больше 500 Кбайт, вывести в центре...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru