Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Монтирование iso образов дисков средствами .Net

#c_sharp #net #iso_образ


Есть ли в .Net средства для монтирования iso образов дисков?
    


Ответы

Ответ 1



В Windows 8/8.1/10 есть встроенная поддержка монтирования ISO, вызовом AttachVirtualDisk. Но из C# диск проще всего примонтировать вызовом Powershell (nuget package) - Mount-DiskImage using System.Management.Automation; namespace IsoMountTest { internal class Program { private static void Main(string[] args) { var isoPath = @"C:\Foo\bar.iso"; using (var ps = PowerShell.Create()) { ps.AddCommand("Mount-DiskImage").AddParameter("ImagePath", isoPath).Invoke(); } } } } en-SO: Is there any special API in Windows 8 to Mount ISO files?

Ответ 2



Реализовать монтирование дисков средствами .NET - нельзя (нужен драйвер, а драйвера на .NET не пишут). Но можно найти внешнюю программу и запустить ее, сказав ей примонтировать диск. Запускается внешняя программа обычно через Process.Start. Кстати, если просто "запустить" .iso-файл - то при установленной программе для монтирования образов есть неплохой шанс, что образ смонтируется.

Ответ 3



Для этого есть DiscUtils, есть IsoCreator, также есть IsoCS. Источники: enSO1, enSO2 и, как ни странно, гугл.

Ответ 4



Если монтирование ISO образа вам необходимо для чтения содержимого, то в монтировании нет нужды, потому что содержимое ISO файла можно прочитать так: using (FileStream isoStream = File.Open(@"C:\sample.iso")) { CDReader cd = new CDReader(isoStream, true); Stream fileStream = cd.OpenFile(@"Folder\Hello.txt", FileMode.Open); // ... } Этот код работает благодаря проекту DiscUtils, в котором существует поддержка ISO файлов, а также для виртуальных машин есть поддержка: VHD, VDI, XVA, VMDK и многих других. Страницы для скачивания DiscUtils: http://www.nuget.org/packages/Discutils/ http://discutils.codeplex.com/

Комментариев нет:

Отправить комментарий