2015-04-14 4 views
0

Как получить атрибуты файлов или информацию о версии файла драйвера в окнах через C#. Я использую этот код:Получить версию файла драйвера в окнах

var version = File.GetAttributes(Environment.SystemDirectory + @"\drivers\acpi.sys"); 

, но этот код бросить исключение: Could not find file 'C:\Windows\system32\drivers\acpi.sys'.. Тогда я использую этот код var dir = Directory.GetFiles(Environment.SystemDirectory + @"\drivers"); в переменной dir. У меня 4 файла. Если я открою эту папку через Windows Explorer, у меня в папке 300+ файлов. Что я делаю не так?

+2

Вы не на Windows 95 больше, есть гораздо больше вещей между приложением и системой. Почему вы даже пытаетесь прочитать версию 'acpi.sys'? – Luaan

+0

@ Luaan это пример. Мне нужно прочитать информацию другого файла. Эта проблема не только для acpi.sys. – EXTRAM

+1

Вы говорите о драйверах. Почему вы запрашиваете версии драйверов? И почему вы пытаетесь это сделать, читая версию файла в файловой системе? – Luaan

ответ

1

Вы должны с помощью> = Рамочные .net 4, добавить:

using System.Management; 

и добавить ссылку System.Management;

 ManagementObjectSearcher searcher = 
         new ManagementObjectSearcher("root\\CIMV2", 
         "SELECT * FROM Win32_PnPSignedDriver"); 
     ManagementObjectCollection moc = searcher.Get(); 

     foreach (var manObj in moc) 
     { 
      Console.WriteLine("Device Name:" + manObj["FriendlyName"] + " \r\nDeviceID: " + manObj["DeviceID"] + "\r\nDriverDate: " + manObj["DriverDate"] + "\r\nDriverVersion: " + manObj["DriverVersion"] + "\r\nDriverName:" + manObj["DriverName"] +"\n\r======================================\n\n";); 
     } 

Результат (часть):

enter image description here

+0

Как я могу запросить драйвер по имени sys-файла? – EXTRAM

+0

@EXTRAM Не надо. Вы все еще смотрите на это с совершенно неправильной точки зрения. Физические файлы 'sys' - это просто деталь, которая не имеет значения. Вместо этого идите по идентификаторам устройств, например, к парам устройств/устройств класса «ClassGuid» или USB. – Luaan

+0

'ManagementObjectSearcher' - это медленная боль в прикладе, скорее используйте версию файла, если она правильная. – Wobbles

Смежные вопросы