weniZAYTalk

.NET DiscUtils

  • Page 1 of 1
  • 1
Archive - read only
.NET DiscUtils
.NET DiscUtils — open source-библиотека .NET Framework для доступа и работы с образами виртуальных дисков. Библиотека полностью написанная на C#, и доступна на сайте Microsoft CodePlex.
Поддерживаемые форматы
.NET DiscUtils поддерживает несколько форматов образов дисков, схем выделения разделов и файловых систем Windows.
Форматы дисковых образов
VHD
VMDK
VDI
ISO
UDF
SDI
WIM
Необработанные образы дисков (IMA, IMG, VFD, FLP)
Схем выделения разделов
Таблица разделов BIOS
Таблица разделов GUID
Диспетчер логических дисков
Файловые системы
FAT
FAT32
NTFS
В файловых системах FAT и FAT32 отсутствует поддержка длинных имён файлов.
Примеры
Создание ISO образа


Код
CDBuilder builder = new CDBuilder();
builder.UseJoliet = true;
builder.VolumeIdentifier = "A_SAMPLE_DISK";
builder.AddFile(@"Folder\Hello.txt", Encoding.ASCII.GetBytes("Hello World!"));
builder.Build(@"C:\temp\sample.iso");
Распаковка файлов ISO образа

Код
using (FileStream isoStream = File.Open(@"C:\temp\sample.iso"))
{
  CDReader cd = new CDReader(isoStream, true);
  Stream fileStream = cd.OpenFile(@"Folder\Hello.txt", FileMode.Open);
  // Используйте fileStream...
}
Создание виртуального диска

Код
long diskSize = 30 * 1024 * 1024; // 30 MB
using (Stream vhdStream = File.Create(@"C:\TEMP\mydisk.vhd"))
{
    Disk disk = Disk.InitializeDynamic(vhdStream, diskSize);
    BiosPartitionTable.Initialize(disk, WellKnownPartitionType.WindowsFat);
    using (FatFileSystem fs = FatFileSystem.FormatPartition(disk, 0, null))
    {
        fs.CreateDirectory(@"TestDir\CHILD");
        // Остальные действия с файловой системой...
    }
}


Данный пример создает виртуальный VHD-диск с динамическим расширением. Нижеследующий пример создаст диск с фиксированным размером.

Код
long diskSize = 30 * 1024 * 1024; // 30 MB
using (Stream vhdStream = File.Create(@"C:\TEMP\mydisk.vhd"))
{
    Disk disk = Disk.InitializeFixed(vhdStream, diskSize);
    BiosPartitionTable.Initialize(disk, WellKnownPartitionType.WindowsFat);
    using (FatFileSystem fs = FatFileSystem.FormatPartition(disk, 0, null))
    {
        fs.CreateDirectory(@"TestDir\CHILD");
        // Остальные действия с файловой системой...
    }
}
Создание флоппи-диска

Код
using (FileStream fs = File.Create(@"myfloppy.vfd"))
{
    using (FatFileSystem floppy = FatFileSystem.FormatFloppy(fs, FloppyDiskType.HighDensity, "MY FLOPPY  "))
    {
        using (Stream s = floppy.OpenFile("foo.txt", FileMode.Create))
        {
            // Используйте поток stream...
        }
    }
}
  • Page 1 of 1
  • 1
Search: