Как я могу проверить на доступное дисковое пространство?

Я провел долгое время, создавая мой .vimrc для работы с этим HTML:: проект Масона я шел в течение четырех лет, таким образом, у меня есть нечетное соединение вкладок и окон с несколькими панелями. Для Вашего удовольствия просмотра:

map ;o :Sex <CR>
map <C-J> <C-W>j
map <C-K> <C-W>k
map <C-l> <C-W>l
map <C-h> <C-W>h
map ;] :tabnext<CR>
map ;[ :tabprev<CR>
map <C-t> :tabe +"browse ."<CR>
map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>
21
задан George Stocker 11 September 2009 в 20:00
поделиться

5 ответов

Вы можете проверить это с помощью выполните следующие действия:

Добавьте System.Management.dll в качестве ссылки на ваш проект.

Используйте следующий код, чтобы получить дисковое пространство:

using System;
using System.Management;

public string GetFreeSpace();
{ 
   ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
   disk.Get();
   string freespace = disk["FreeSpace"];
   return freespace;
}

Существует множество способов сделать я бы проверил пространство имен System.Management , чтобы узнать о других способах.

Вот один из способов с этой страницы:

public void GetDiskspace()
    {
      ConnectionOptions options = new ConnectionOptions();
      ManagementScope scope = new ManagementScope("\\\\localhost\\root\\cimv2", 
      options);
      scope.Connect();
      ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
      SelectQuery query1 = new SelectQuery("Select * from Win32_LogicalDisk");

      ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
      ManagementObjectCollection queryCollection = searcher.Get();
      ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(scope, query1);
      ManagementObjectCollection queryCollection1 = searcher1.Get();

      foreach (ManagementObject m in queryCollection)
      {
          // Display the remote computer information

          Console.WriteLine("Computer Name : {0}", m["csname"]);
          Console.WriteLine("Windows Directory : {0}", m["WindowsDirectory"]);
          Console.WriteLine("Operating System: {0}", m["Caption"]);
          Console.WriteLine("Version: {0}", m["Version"]);
          Console.WriteLine("Manufacturer : {0}", m["Manufacturer"]);
          Console.WriteLine();
      }

      foreach (ManagementObject mo in queryCollection1)
      {
          // Display Logical Disks information

         Console.WriteLine("              Disk Name : {0}", mo["Name"]);
         Console.WriteLine("              Disk Size : {0}", mo["Size"]);
         Console.WriteLine("              FreeSpace : {0}", mo["FreeSpace"]);
         Console.WriteLine("          Disk DeviceID : {0}", mo["DeviceID"]);
         Console.WriteLine("        Disk VolumeName : {0}", mo["VolumeName"]);
         Console.WriteLine("        Disk SystemName : {0}", mo["SystemName"]);
         Console.WriteLine("Disk VolumeSerialNumber : {0}", mo["VolumeSerialNumber"]);
         Console.WriteLine();
      }
      string line;
      line = Console.ReadLine(); 
    }
30
ответ дан 29 November 2019 в 06:34
поделиться

, используя этот код

 static void Main()
    {
        try
        {
            DriveInfo driveInfo = new DriveInfo(@"C:");
            long FreeSpace = driveInfo.AvailableFreeSpace;
        }
        catch (System.IO.IOException errorMesage)
        {
            Console.WriteLine(errorMesage);
        }

    }

ЕСЛИ вы появляется ошибка « Устройство не готово ». Т.е. ваше устройство не готово. Если вы попробуете этот код для привода компакт-дисков без компакт-диска, вы получите ту же ошибку:)

17
ответ дан 29 November 2019 в 06:34
поделиться

Похоже, это вариант из System.IO:[1214 impression

9
ответ дан 29 November 2019 в 06:34
поделиться

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

DriveInfo[] oDrvs = DriveInfo.GetDrives();
    foreach (var Drv in oDrvs) {
        if (Drv.IsReady) {
            Console.WriteLine(Drv.Name + " " + Drv.AvailableFreeSpace.ToString);
        }
}
6
ответ дан 29 November 2019 в 06:34
поделиться

Вы можете использовать WMI, см. Этот связанный вопрос:

Лучший способ запросить дисковое пространство на удаленном сервере

1
ответ дан 29 November 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: