0

在我的 C# 3.5 程序中,我想从 MS Virtual PC 机器访问 NTFS/FAT 驱动器。

我可以在 Microsoft 网站上看到一些用于 Virtual PC 的 C++ API,但找不到 .NET 的 API(我应该使用 P-Invoke 吗?)。我想通过帮助或常规 .NET API 调用(如 File.ReadAllText、Directory.GetDirectories 等)检查虚拟机内文件系统中的文件和文件夹。

示例代码将不胜感激。

4

2 回答 2

1

似乎与您的VMDK 问题类似的问题...

无论如何,您可以使用WinMount ($) 之类的东西来挂载映像,然后像访问任何其他本地驱动器一样访问它。

如果您有 MS 虚拟服务器,另一个选项是VHDMount 。

两者都有一个命令行工具,如果需要,可以从应用程序中启动。

于 2011-03-04T22:22:51.137 回答
1

根据主机操作系统,您可以使用 Windows 7 / Server 2008 中引入的虚拟硬盘 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 的操作系统上运行,那么据我所知,您必须使用此处回复/评论中描述的外部工具。

于 2011-03-25T19:37:28.403 回答