Как получить информацию о нераспределенном пространстве на физическом диске - PullRequest
3 голосов
/ 05 октября 2011

Может кто-нибудь помочь, как получить информацию о нераспределенном пространстве на диске с помощью C #?

Ответы [ 2 ]

3 голосов
/ 05 октября 2011

Если вы хотите узнать общее свободное пространство для тома, вы можете использовать DriveInfo.AvailableFreeSpace.

http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx

Вы также можете использовать WMI для получения информации о разделах надиск, используя Win32_DiskPartition и Win32_DiskDrive:

Win32_DiskPartition: http://msdn.microsoft.com/en-us/library/aa394135%28VS.85%29.aspxWin32_DiskDrive: http://msdn.microsoft.com/en-us/library/aa394132%28v=VS.85%29.aspx

Вы можете использовать поле DeviceID, чтобы определить, какой раздел на каком диске, а затем использовать поля StartOffset и Size, чтобы построить карту расположения разделений нафизический диск.Затем просто используйте данные из Win32_DiskDrive, чтобы вычислить весь размер диска, и вычислите остаток.

Вот статья о MSDN, которая должна предоставить вам всю необходимую помощь в использовании WMI:http://msdn.microsoft.com/en-us/library/ms257338.aspx

0 голосов
/ 05 октября 2011

Попробуйте что-то вроде этого:

using System.Linq;
using System.IO;
using System;
namespace DriveInfoExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Check only for fixed drives
            foreach (var di in DriveInfo.GetDrives().Where(d=>d.DriveType == DriveType.Fixed))
            {
                Console.WriteLine("Free space on drive {0}\t{1} bytes", di.Name, di.AvailableFreeSpace);
            }
        }
    }
}
...