Ανακτούμε τα στοιχεία με την ανάγνωση των πληροφοριών του αρχείου (σ) από τον κατάλογο ρίζας και ενσωματώνουμε έπειτα το αρχείο στην πορεία προορισμού και ανακτούμε το αρχείο. Το επόμενο πρόγραμμά μας εκτελεί τα ακόλουθα βήματα για να ανακτήσει τα στοιχεία:
- Διαβάστε τις καταχωρήσεις καταλόγου ρίζα ςκαι τους επιδείξτε στην οθόνη με όλες τις πληροφορίες όπως το αρχείο/το όνομα καταλόγου, επέκταση του αρχείου, που αρχίζει το μέγεθος συστάδων των αρχείων στις ψηφιολέξεις.
- Διαβάστε τις πληροφορίες αρχείων και καταλόγων στα subdirectories και τους επιδείξτε αν είναι απαραίτητο.
- Επιβεβαιώστε το όνομα αρχείων που ανακτάται και να συνεχίσει την αποκατάσταση.
- Υπολογίστε τις (κύλινδρος, κεφάλι, και τομέας) πληροφορίες CHS για το διευκρινισμένο αρχείο που ανακτάται.
- Ενσωματώστε τα στοιχεία του αρχείου από την περιοχή στοιχείων του δίσκου και σώστε το ανακτημένο αρχείο στο διευκρινισμένο όνομα αρχείων προορισμού στη διευκρινισμένη πορεία.
Αυτό το πρόγραμμα δεν φροντίζει εάν οι πληροφορίες μποτών της δισκέτας είναι αναγνώσιμες ή όχι. Επομένως μπορείτε να ανακτήσετε ακόμη και τα διαγραμμένα στοιχεία από την αλλοιωμένη δισκέτα επίσης. Δείτε την κωδικοποίηση του προγράμματος:
/* Πρόγραμμα για να ανακτηθούν τα στοιχεία από τη δισκέτα με την ανάγνωση των πληροφοριών αρχείων από τον κατάλογο ρίζας */
#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);
} /*Τέλος του κεντρικού αγωγού*/
void Display_Information(unsigned int track,
unsigned int head,
unsigned int sector)
{
void recover(unsigned int *,unsigned int);
char buf[512]; //Απομονωτής 512 ψηφιολέξεων
char ch;
struct diskinfo_t finfo; //Δομή, που χρησιμοποιείται από _ το bios_disk
unsigned int result,i,j, count=0; /* Ακέραιοι αριθμοί που καθορίζονται ανυπόγραφοι */
unsigned int file_no; /* Ανυπόγραφος ακέραιος αριθμός για τον αριθμό αρχείου */
struct
{
unsigned int name[8],ext[3]; /* Όνομα αρχείων για το DOS με (οκτώ σημείο τρία) το σχήμα 8,3*/
unsigned int attribute; // Αρχείο/ιδιότητες καταλόγου
unsigned int start; // Αρχική συστάδα του αρχείου
long unsigned int size; // Μέγεθος του αρχείου στις ψηφιολέξεις
}root[32]; /* 32 Πληροφορίες ψηφιολέξεων του αρχείου/του καταλόγου στον κατάλογο ρίζας */
clrscr();
|