Intentemos esta información para limpiar los datos de cualquier archivo almacenado en 1.44Mb, diskette de la pulgada de 3 ½, con la ayuda de la información del directorio de raíz. Si se asume que los datos en la diskette no están hechos fragmentos, el programa dado trapos siguientes los datos del archivo especificado de su área de datos:
/* Programa para limpiar el área de datos del archivo especificado en diskette */
#include<stdio.h>
#include<dos.h>
///// Estructura para leer 32 octetos de entrada del archivo en directorio de raíz \\\\\
struct root
{
unsigned char filename[8]; /* Entrada del nombre del archivo de 8 octetos */
unsigned char extension[3]; /* Extensión del archivo de 3 octetos */
unsigned char attribute; /* Octeto de la cualidad del archivo */
unsigned char reserved[10]; /* Octetos reservados 10 */
unsigned int time; /* Tiempo, 2 octetos */
unsigned int date; /* Fecha, 2 octetos */
unsigned int starting_cluster;/* Comenzar el racimo del archivo, 2 octetos */
unsigned long file_size; /* Tamaño del archivo en los octetos, 4 octetos */
};
/* Debe ser tomado esto para leer todas las entradas en la guía de raíz */
//entrada de la raíz del struct [224];
/*Estructura para leer las 16 entradas del archivo en un sector de directorio de raíz */
struct one_root_sector
{
struct root entry[16];
};
struct one_root_sector one;
void main()
{
int result, i, num_sectors,j;
char wipe_buf[512]; /* Los datos protegen para ser utilizados para limpiar hacia fuera el área de datos del archivo */
clrscr();
result= absread(0x00, 1, 19, &one); /* Leer el sector absoluto 19 (el primer sector de directorio de raíz) */
if (result != 0)
{
perror("Error in Reading Sector, Press any key to
Exit...");
getch();
exit(1);
}
|