Русская Википедия:.NET DiscUtils: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 1: Строка 1:
{{Русская Википедия/Панель перехода}}
{{Русская Википедия/Панель перехода}}
{{Значения|.NET}}
{{Значения|.NET}}
Строка 121: Строка 120:


[[Категория:Свободные библиотеки программ]]
[[Категория:Свободные библиотеки программ]]
{{#set:
Текст статьи={{Значения|.NET}}
{{Infobox software
| name                  = .NET DiscUtils
| logo                  =
| screenshot            =
| caption                = .NET DiscUtils
| author                =
| developer              = Kenneth Bell
| released              =
| latest release version = 0.10
| latest release date    = [[17 декабря]] [[2011]]
| latest preview version =
| latest preview date    =
| programming language  = C#
| operating system      = [[Microsoft Windows]]
| platform              = .NET
| language              = [[Английский язык|Английский]]
| status                =
| genre                  =
| license                = [[MIT License|MIT]]
| website                = http://discutils.codeplex.com
}}
'''.NET DiscUtils''' — [[Открытое программное обеспечение|open source]]-библиотека [[.NET Framework]] для доступа и работы с образами виртуальных дисков. Библиотека полностью написанная на [[C Sharp|C#]], и доступна на сайте [[Microsoft]] [[CodePlex]].
== Поддерживаемые форматы ==
.NET DiscUtils поддерживает несколько форматов [[Образ диска|образов дисков]], схем выделения [[Раздел диска|разделов]] и [[Файловая система|файловых систем]] Windows.
=== Форматы дисковых образов ===
* [[VHD]]
* [[VMDK]]
* [[VDI]]
* [[ISO-образ|ISO]]
* [[Universal Disk Format|UDF]]
* [[SDI (формат файла|SDI]]
* [[Windows Imaging Format|WIM]]
* Необработанные образы дисков ([[IMA (формат файла)|IMA]], [[IMG (формат файла)|IMG]], [[VFD (формат файла)|VFD]], [[FLP (формат файла)|FLP]])
=== Схем выделения разделов ===
* [[Главная загрузочная запись|Таблица разделов BIOS]]
* [[Таблица разделов GUID]]
* [[Диспетчер логических дисков]]
=== Файловые системы ===
* [[FAT]]
* [[FAT32]]
* [[NTFS]]
В файловых системах FAT и FAT32 отсутствует поддержка длинных имён файлов.
== Примеры ==
=== Создание ISO образа ===
<source lang="csharp">
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");
</source>
=== Распаковка файлов ISO образа ===
<source lang="csharp">
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...
}
</source>
=== Создание виртуального диска ===
<source lang="csharp">
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");
        // Остальные действия с файловой системой...
    }
}
</source>
Данный пример создает виртуальный VHD-диск с динамическим расширением.
Нижеследующий пример создаст диск с фиксированным размером.
<source lang="csharp">
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");
        // Остальные действия с файловой системой...
    }
}
</source>
=== Создание флоппи-диска ===
<source lang="csharp">
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...
        }
    }
}
</source>
== Ссылки ==
* [http://discutils.codeplex.com Официальный сайт .NET DiscUtils] {{ref-en}}
* [http://www.codeproject.com/KB/aspnet/ServeCustomizedISOs.aspx Статья CodeProject о .NET DiscUtils] {{Wayback|url=http://www.codeproject.com/KB/aspnet/ServeCustomizedISOs.aspx |date=20110605012917 }} {{ref-en}}
{{compu-soft-stub}}
[[Категория:Свободные библиотеки программ]]
}}
{{Навигационная таблица/Портал/Русская Википедия}}
{{Навигационная таблица/Портал/Русская Википедия}}
[[Категория:Русская Википедия]]
[[Категория:Русская Википедия]]

Текущая версия от 23:14, 10 июля 2023

Шаблон:Значения Шаблон:Infobox software .NET DiscUtils — open source-библиотека .NET Framework для доступа и работы с образами виртуальных дисков. Библиотека полностью написанная на C#, и доступна на сайте Microsoft CodePlex.

Поддерживаемые форматы

.NET DiscUtils поддерживает несколько форматов образов дисков, схем выделения разделов и файловых систем Windows.

Форматы дисковых образов

Схем выделения разделов

Файловые системы

В файловых системах 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...
        }
    }
}

Ссылки

Шаблон:Compu-soft-stub