private void Formatear() { try { if (DiskStream != null) { //Nulificar archivo DiskStream.Seek(0, SeekOrigin.Begin); DiskStream.SetLength(0); DiskStream.Flush(); DiskStream.SetLength(DiskSize); DiskStream.Flush(); //Escribir el BootSector BootSector BootSector = new BootSector((int)DiskStream.Length, NewsectorPorCluster, NewVolumeLabel); BootSector.WriteBootSector(DiskStream); //Escribir FSInfoSector FSInfoSector FSInfoSector = new FSInfoSector(); FSInfoSector.WriteInformationSector(DiskStream); //Inicializar Tabla FAT - Offset 32 despues de los sectores reservados FileAllocationTable NewFAT = new FileAllocationTable(BootSector); NewFAT.WriteNewFAT(DiskStream); FSInfoSector.UpdateFreeClusters(1, BootSector); FSInfoSector.UpdateLastAllocatedCluster(2); FSInfoSector.WriteInformationSector(DiskStream); MessageBox.Show("La imagen de disco ha sido formateada!", "Formato Completo", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void Formatear(FileStream stream) { try { byte SectoresPorCluster = 0x00; //Obtener el numero de sectores por cluster switch (tamanoSectoresPorCluster.SelectedIndex) { case 0: //1 sector por cluster = Clusters de 512 bytes SectoresPorCluster = 0x01; break; case 1: //2 sectores por cluster = Clusters de 1 KiB SectoresPorCluster = 0x02; break; case 2: //4 sectores por cluster = Clusters de 2 KiB SectoresPorCluster = 0x04; break; case 3: //8 sectores por cluster = Clusters de 4 KiB SectoresPorCluster = 0x08; break; case 4: //16 sectores por cluster = Clusters de 8 KiB SectoresPorCluster = 0x10; break; case 5: //32 sectores por cluster = Clusters de 16KiB SectoresPorCluster = 0x20; break; default: SectoresPorCluster = 0x01; break; } //Escribir el BootSector BootSector BootSector = new BootSector((int)stream.Length, SectoresPorCluster, txtVolLabel.Text); BootSector.WriteBootSector(stream); //Escribir FSInfoSector FSInfoSector FSInfoSector = new FSInfoSector(); FSInfoSector.WriteInformationSector(stream); //Inicializar Tabla FAT - Offset 32, despues de los sectores reservados FileAllocationTable NewFAT = new FileAllocationTable(BootSector); NewFAT.WriteNewFAT(stream); FSInfoSector.UpdateFreeClusters(1, BootSector); FSInfoSector.UpdateLastAllocatedCluster(2); FSInfoSector.WriteInformationSector(stream); MessageBox.Show("La imagen de disco ha sido creada y formateada!", "Formato Completo", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }