2011-03-04 31 views
0

在我的C#3.5程序中,我想從MS Virtual PC機器訪問NTFS/FAT驅動器。如何在.NET中安裝Microsoft Virtual PC文件系統意味着?

我可以看到微軟網站上的虛擬PC的一些C++ API,但找不到.NET一個(我應該使用P-調用?)。我想用File.ReadAllText,Directory.GetDirectories等幫助或常規的.NET API調用來檢查虛擬密歇根文件系統內的文件和文件夾。

示例代碼將非常感激。

+0

您是試圖訪問虛擬機看到的驅動器還是主機驅動器?如果你想做第二次,我不相信這是可能的... – JasCav 2011-03-04 22:15:50

+0

我想從主機訪問虛擬驅動器。我想這樣做,沒有虛擬機打開。爲什麼不可能?虛擬PC以某種方式自行完成,因此對於我的程序也應該可能。 – Alex 2011-03-04 23:04:47

回答

1

取決於主機操作系統上,可以使用在Windows 7/Server 2008中引入了Virtual Harddisk API我不知道它的.NET的支持。據我所知,你將不得不使用互操作來訪問它。

,可以看到在http://www.jmedved.com/2009/05/open-and-attach/一個實例,其僅定義了結構/所絕對需要用於安裝VHD功能。可以在http://files.codes-sources.com/fichier_fullscreen.aspx?id=50320(請參閱Win7_VirtualDiskWrapper/VirtualDiskWrapper/Interop)目錄中找到更完整的互操作定義類。

請注意,使用此API需要管理權限。

如果您的應用程序應該比Win7的操作系統舊的運行,那麼到我所知這裏的答覆/評論描述您必須使用外部工具。

+0

謝謝,telewin,這正是我期待的! – Alex 2011-03-26 07:58:47

1

似乎是一個類似的問題,您VMDK question ...

不管怎麼說,你可以使用類似WinMount($)裝入圖像,然後訪問它,就像任何其他的本地驅動器。

另一種選擇是VHDMount,如果你有MS虛擬服務器。

兩者有一個命令行工具,它可以從應用程序內啓動,如果這是需要。

+0

是的,我將在我的程序中支持這兩種格式。我想避免第三方程序。如果可能的話,我想使用.NET API。我不確定VMWare,但不相信微軟不支持他們自己的技術和他們自己的.NET上的API。 – Alex 2011-03-04 22:41:41

+0

忘記了分號,謝謝你的建議! – Alex 2011-03-04 22:42:42

+0

@Alex如果他們解決任務,則不應避免使用第三方工具。 +1的答案,這真的很酷,尤其是第二個鏈接,那裏有很棒的信息。 – Andrey 2011-03-04 23:04:12