Как монтировать файловую систему Microsoft Virtual PC в .NET средствами? - PullRequest
0 голосов
/ 05 марта 2011

В моей программе на C # 3.5 я хотел бы получить доступ к дискам NTFS / FAT с компьютера MS Virtual PC.

Я вижу некоторые C ++ API для Virtual PC на сайте Microsoft, но не могу найти .NET один ((я должен использовать P-Invoke?).Я хотел бы изучить файлы и папки в файловой системе внутри виртуальной машины с помощью или регулярных вызовов .NET API, таких как File.ReadAllText, Directory.GetDirectories и т. Д.

Пример кода будет очень полезен.

Ответы [ 2 ]

1 голос
/ 25 марта 2011

В зависимости от операционной системы хоста вы можете использовать Virtual Harddisk API , представленный в Windows 7 / Server 2008. Мне не известно о поддержке .NET для него. Насколько я знаю, вам придется использовать взаимодействие для доступа к нему.

Вы можете найти пример в http://www.jmedved.com/2009/05/open-and-attach/,, который определяет только структуры / функции, которые абсолютно необходимы для подключения виртуального жесткого диска. Более полный класс определения взаимодействия можно найти в http://files.codes -sources.com / fichier_fullscreen.aspx? Id = 50320 (см. Каталог Win7_VirtualDiskWrapper / VirtualDiskWrapper / Interop).

Обратите внимание, что для использования этого API требуются права администратора.

Если ваше приложение должно работать в операционных системах, более старых, чем Win7, то, насколько мне известно, вы должны использовать внешний инструмент, как описано в ответах / комментариях здесь.

1 голос
/ 05 марта 2011

Похож на ваш вопрос VMDK ...

В любом случае, вы можете использовать что-то вроде WinMount ($) для монтирования образа, а затем получить к нему доступ, как и к любому другому локальному диску.

Другой вариант - VHDMount , если у вас виртуальный сервер MS.

Оба имеют инструмент командной строки, который может быть запущен из приложения, если это необходимо.

...