우리는 루트 디렉토리에서 파일의 정보를 읽어서 자료를 재기하고 목적지 경로에 그 후에 파일을 통합하고 파일을 재기한다. 우리의 다음 프로그램은 뒤에 오는 자료를 재기하기 위하여 단계를 실행한다:
- 루트 디렉토리 입장을 읽고 파일 또는 디렉토리 이름 바이트에 있는 파일의 송이 크기를 시작하는 파일의 연장과 같은 모든 정보를 가진 스크린에 표시하십시오.
- 서브디럭토리에 있는 파일과 전화번호부 정보를 읽고 그들을 필요하면 표시하십시오.
- 재기될 파일 이름을 확인하고 회복을 계속하십시오.
- 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 (3개가 8에 의하여 점을 찍는다) 체재에 있는 DOS의 파일 이름 */
unsigned int attribute; // 파일 또는 전화번호부 속성
unsigned int start; // 파일의 송이 시작
long unsigned int size; // 바이트에 있는 파일의 크기
}root[32]; /* 루트 디렉토리에 있는 파일 전화번호부의 32의 바이트 정보 */
clrscr();
|