Recuperamos los datos leyendo la información de los archivos del directorio de raíz y entonces integramos el archivo a la trayectoria de la destinación y recuperamos el archivo. Nuestro programa siguiente realiza los pasos siguientes para recuperar los datos:
- Leer las entradas en la guía de raíz y exhibirlas en la pantalla con toda la información tal como nombre del archivo/de directorio, extensión del archivo, comenzando el tamaño del racimo de los archivos en octetos.
- Leer la información de los archivos y de los directorios en los Subdirectories y exhibirlos si procede.
- Confirmar el nombre del archivo que se recuperará y continuar la recuperación.
- Calcular el CHS (cilindro, cabeza, y sector) Info para que el archivo especificado sea recuperado.
- Integrar los datos del archivo del área de datos del disco y ahorrar el archivo recuperado al nombre del archivo especificado de la destinación en trayectoria especificada.
Este programa no cuida si la información del cargador del disco blando es legible o no. Por lo tanto puedes recuperar incluso datos suprimidos de la diskette corrompida también. Veamos la codificación del programa:
/* El programa para recuperar los datos de la diskette de Reading archiva la información del directorio de raíz */
#include<stdio.h>
#include<bios.h>
#include<dos.h>
void main()
{
void Display_Information(unsigned int,unsigned int,
unsigned int);
unsigned int track=0,head=1,sector=2;
Display_Information(track,head,sector);
} /*Extremo de la cañería */
void Display_Information(unsigned int track,
unsigned int head,
unsigned int sector)
{
void recover(unsigned int *,unsigned int);
char buf[512]; // Almacenador intermediario de 512 octetos
char ch;
struct diskinfo_t finfo; //Estructura, usada por el _bios_disk
unsigned int result,i,j, count=0; /* Los enteros sin signo definieron*/
unsigned int file_no; /* Entero sin signo para el número de archivo */
struct
{
unsigned int name[8],ext[3]; /* Nombre del archivo para el DOS en (ocho punto tres) el formato 8.3 */
unsigned int attribute; // Cualidad del archivo/del directorio
unsigned int start; // Comenzar el racimo del archivo
long unsigned int size; // Tamaño del archivo en octetos
}root[32]; /* Información de 32 octetos del archivo/del directorio en directorio de raíz*/
clrscr();
|