我想从vhdx文件中提取文件。有一种方法可以做到这一点。 - 从安装位置安装磁盘和读取文件。但我想为此编写CPP / C#代码。我能够通过MS提供的API(visrtdisk.dll)获取vhdx文件详细信息,其中包含文件大小,GUID等,但我没有得到任何可以提供磁盘结构(MBE / Partitions / FileSystem / etc)的API给出vhdx文件。
答案 0 :(得分:-1)
请参阅此C#库http://discutils.codeplex.com/,它是非常全面的库并支持大量文件系统(包括VHD,VHDx,ISO,EXT,HFS,HFSPlus等)。
[从主页获取的样本并将其修改为vhdx而不是vhd]。
long diskSize = 30 * 1024 * 1024; //30MB
using (Stream vhdStream = File.Create(@"C:\TEMP\mydisk.vhdx"))
{
Disk disk = Disk.InitializeDynamic(vhdStream, diskSize);
BiosPartitionTable.Initialize(disk, WellKnownPartitionType.WindowsFat);
using (FatFileSystem fs = FatFileSystem.FormatPartition(disk, 0, null))
{
fs.CreateDirectory(@"TestDir\CHILD");
// do other things with the file system...
}
}