.NET DiscUtils
.NET DiscUtils este o bibliotecă open source .NET Framework pentru accesarea și lucrul cu imagini de disc virtual. Biblioteca este scrisă în întregime în C# și este disponibilă pe site-ul Microsoft CodePlex .
Formate acceptate
.NET DiscUtils acceptă mai multe formate de imagini de disc , scheme de partiționare și sisteme de fișiere Windows
.
Formate de imagine de disc
Scheme de partiționare
Sisteme de fișiere
Sistemele de fișiere FAT și FAT32 nu acceptă nume lungi de fișiere.
Exemple
Crearea unei imagini ISO
CDBuilder builder = CDBuilder nou (); constructor . UseJoliet = adevărat ; constructor . VolumeIdentifier = "A_SAMPLE_DISK" ; constructor . AddFile ( @"Folder\Hello.txt" , Encoding . ASCII . GetBytes ( "Hello World!" )); constructor . Build ( @"C:\temp\sample.iso" );
Despachetarea fișierelor imagine ISO
folosind ( FileStream isoStream = File . Open ( @"C:\temp\sample.iso" ))
{
CDReader cd = new CDReader ( isoStream , true );
Stream fileStream = cd . OpenFile ( @"Folder\Hello.txt" , FileMode . Open );
// Folosește fileStream...
}
Crearea unui disc virtual
Long diskSize = 30 * 1024 * 1024 ; // 30 MB
folosind ( Stream vhdStream = File . Create ( @"C:\TEMP\mydisk.vhd" ))
{
Disk disk = Disk . InitializeDynamic ( vhdStream , diskSize );
BiosPartitionTable . Inițializare ( disc , WellKnownPartitionType . WindowsFat );
folosind ( FatFileSystem fs = FatFileSystem . FormatPartition ( disc , 0 , null ))
{
fs . CreateDirectory ( " @"TestDir\CHILD" );
// Alte acțiuni cu sistemul de fișiere...
}
}
Acest exemplu creează un VHD virtual cu extindere dinamică. Următorul exemplu va crea un disc cu o dimensiune fixă.
Long diskSize = 30 * 1024 * 1024 ; // 30 MB
folosind ( Stream vhdStream = File . Create ( @"C:\TEMP\mydisk.vhd" ))
{
Disk disk = Disk . InitializeFixed ( vhdStream , diskSize );
BiosPartitionTable . Inițializare ( disc , WellKnownPartitionType . WindowsFat );
folosind ( FatFileSystem fs = FatFileSystem . FormatPartition ( disc , 0 , null ))
{
fs . CreateDirectory ( " @"TestDir\CHILD" );
// Alte acțiuni cu sistemul de fișiere...
}
}
Crearea unei dischete
folosind ( FileStream fs = File . Create ( @"myfloppy.vfd" ))
{
folosind ( FatFileSystem floppy = FatFileSystem . FormatFloppy ( fs , FloppyDiskType . HighDensity , "MY FLOPPY " ))
{
folosind ( Stream s = floppy ( " . OpenFile " . foo.txt" , FileMode . Creați )) { // Folosiți fluxul... } } }
Link -uri