none
Как получить имена физических дисков C#? RRS feed

Ответы

  • Можно использовать технологию WMI.

    К проекту нужно подключить System.Management.dll.

    ManagementObjectSearcher searcher;
    
    searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskDrive");
    
    foreach (ManagementObject queryObj in searcher.Get())
    {
        Console.WriteLine("Win32_DiskDrive instance");
    
        Console.WriteLine("Caption: {0}", queryObj["Caption"]);
        Console.WriteLine("Model: {0}", queryObj["Model"]);
        Console.WriteLine("Description: {0}", queryObj["Description"]);
        Console.WriteLine("MediaType: {0}", queryObj["MediaType"]);
        Console.WriteLine();
    }            
    
    searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_CDROMDrive");
    
    foreach (ManagementObject queryObj in searcher.Get())
    {
        Console.WriteLine("Win32_CDROMDrive instance");
    
        Console.WriteLine("Caption: {0}", queryObj["Caption"]);
        Console.WriteLine("Name: {0}", queryObj["Name"]);
        Console.WriteLine("Description: {0}", queryObj["Description"]);
        Console.WriteLine("MediaType: {0}", queryObj["MediaType"]);
        Console.WriteLine();
    }

    Запрос Win32_DiskDrive возвращает информацию о жёстких дисках и подключенных флэшках. Информацию о CD/DVD-приводах нужно получать отдельным запросом CDROMDrive.

    Свойства Caption и Model в первом случае, и Caption и Name во втором, дают одинаковые значения.

    Если нужна дополнительная информация, советую скачать бесплатную утилиту WMI Code Creator. С её помощью удобно просматривать пространства имён, классы и свойства WMI.

    • Предложено в качестве ответа LXGDARKEditor 16 декабря 2012 г. 6:15
    • Помечено в качестве ответа Ant-kul 16 декабря 2012 г. 10:50
    15 декабря 2012 г. 17:12

Все ответы

  • Можно использовать технологию WMI.

    К проекту нужно подключить System.Management.dll.

    ManagementObjectSearcher searcher;
    
    searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskDrive");
    
    foreach (ManagementObject queryObj in searcher.Get())
    {
        Console.WriteLine("Win32_DiskDrive instance");
    
        Console.WriteLine("Caption: {0}", queryObj["Caption"]);
        Console.WriteLine("Model: {0}", queryObj["Model"]);
        Console.WriteLine("Description: {0}", queryObj["Description"]);
        Console.WriteLine("MediaType: {0}", queryObj["MediaType"]);
        Console.WriteLine();
    }            
    
    searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_CDROMDrive");
    
    foreach (ManagementObject queryObj in searcher.Get())
    {
        Console.WriteLine("Win32_CDROMDrive instance");
    
        Console.WriteLine("Caption: {0}", queryObj["Caption"]);
        Console.WriteLine("Name: {0}", queryObj["Name"]);
        Console.WriteLine("Description: {0}", queryObj["Description"]);
        Console.WriteLine("MediaType: {0}", queryObj["MediaType"]);
        Console.WriteLine();
    }

    Запрос Win32_DiskDrive возвращает информацию о жёстких дисках и подключенных флэшках. Информацию о CD/DVD-приводах нужно получать отдельным запросом CDROMDrive.

    Свойства Caption и Model в первом случае, и Caption и Name во втором, дают одинаковые значения.

    Если нужна дополнительная информация, советую скачать бесплатную утилиту WMI Code Creator. С её помощью удобно просматривать пространства имён, классы и свойства WMI.

    • Предложено в качестве ответа LXGDARKEditor 16 декабря 2012 г. 6:15
    • Помечено в качестве ответа Ant-kul 16 декабря 2012 г. 10:50
    15 декабря 2012 г. 17:12
  • Огромное спасибо! все работает!
    16 декабря 2012 г. 11:12