Wir gewinnen die Daten zurück, indem wir die Informationen der Akten vom Wurzelverzeichnis und dann lesen, integrieren die Akte zum Bestimmungsortweg und gewinnen die Akte zurück. Unser folgendes Programm führt die folgenden Schritte durch, um die Daten zurückzugewinnen:
- Die Wurzelverzeichniseintragungen lesen und sie auf dem Schirm mit allen Informationen wie Akte/Verzeichnisnamen, der Verlängerung anzeigen der Akte und Blockgröße der Akten in den Bytes beginnen.
- Die Akten und Verzeichnisinformationen lesen in den Unterverzeichnissen und sie wenn erforderlich anzeigen.
- Den zurückgewonnen zu werden Dateinamen bestätigen, und Wiederaufnahme fortsetzen.
- Das CHS (Zylinder, Kopf und Sektor) Info errechnen für die spezifizierte zurückgewonnen zu werden Akte.
- Die Daten der Akte vom Datenbereich der Scheibe integrieren und die zurückgewonnene Akte zum spezifizierten Bestimmungsortdateinamen in spezifiziertem Weg speichern.
Dieses Programm interessiert sich nicht wenn Aufladung Informationen vom Floppy-Disc ist oder nicht lesbar. Folglich kannst du sogar gelöschte Daten zurückgewinnen von verdorbene Diskette auch. Uns die Kodierung des Programms sehen lassen:
/* Das Programm, zum der Daten von der Diskette durch Reading zu erholen ordnen Informationen vom Wurzelverzeichnis ein */
#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);
} /*Ende der Hauptleitung*/
void Display_Information(unsigned int track,
unsigned int head,
unsigned int sector)
{
void recover(unsigned int *,unsigned int);
char buf[512]; // Puffer von 512 Bytes
char ch;
struct diskinfo_t finfo; //Struktur, benutzt durch _bios_disk
unsigned int result,i,j, count=0; /*Nicht unterzeichnete Ganzzahlen definiert */
unsigned int file_no; /*Nicht unterzeichnete Ganzzahl für Aktenzeichen */
struct
{
unsigned int name[8],ext[3]; /* Dateiname für DOS in (acht Punkt drei) Format 8.3 */
unsigned int attribute; // Akte/Verzeichnis-Attribute
unsigned int start; // Beginnen des Blockes der Akte
long unsigned int size; // Größe der Akte in den Bytes
}root[32]; /* 32 Byte-Informationen der Akte/des Verzeichnisses im Wurzelverzeichnis */
clrscr();
|