私達はルートディレクトリからファイルの情報を読むことによってデータを回復し、行先道に次にファイルを統合し、そしてファイルを回復する。 私達の次のプログラムは次のデータを回復するためにステップを行う:
- ルートディレクトリの記入項目を読み、ファイルまたはディレクトリ名、バイトのファイルの集りのサイズを始めるファイルの延長のようなすべての情報のスクリーンの表示しなさい。
- サブディレクトリーのファイルおよび登録簿情報を読み、それらを必要であれば表示しなさい。
- 回復されるべきファイル名前を確認し、回復を続けなさい。
- CHS (シリンダー、頭部および回復されるべき指定ファイルのためのセクター)をインフォメーション計算しなさい。
- ディスクのデータ域からのファイルのデータを統合し、指定道の指定の宛先ファイル名前に回復されたファイルを救いなさい。
このプログラムはフロッピィのブーツ情報が読解可能またはないなら気遣わない。 従って買収されたフロッピー・ディスクから削除されたデータを回復もできる。 私達をプログラムのコーディングを見ることを許可しなさい:
/* ルートディレクトリからのReadingファイル情報によってフロッピー・ディスクからデータを回復するプログラム */
#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]; /* 8.3 (8つは3つに点を打つ)フォーマットのdosのファイル名前 */
unsigned int attribute; // ファイルまたは登録簿の属性
unsigned int start; // ファイルの集りの開始
long unsigned int size; // バイトのファイルのサイズ
}root[32]; /* ルートディレクトリのファイルまたは登録簿の32バイト情報 */
clrscr();
|