Как получить файлы (или файловую систему) из файла VHDX с помощью CPP/C#

Я хочу извлечь файл из файла VHDX. Есть способ сделать это. -Монтировать диск и прочитать файл из смонтированного места. Но я хочу написать для этого код CPP/C#. Я могу получить подробную информацию о файле vhdx с помощью API, предоставляемого MS (visrtdisk.dll), который состоит из размера файлов, GUID и т. Д., Но я не получаю API, который может дать мне структуру диска (MBE/Partitions/FileSystem/ и т. Д.) Из данный VHDX файл.

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...
    }
}
Другие вопросы по тегам