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());
            }
        }