82.9 프로그램 사용해보기
이제 소스 코드를 컴파일한 뒤 콘솔(명령 프롬프트, 터미널)에서 실행 파일이 있는 폴더로 이동합니다.
C:\Users\dojang>cd c:\project\filearchive\Debug c:\project\filearchive\Debug>
메모장을 이용해서 현재 폴더에 다음과 같은 내용으로 텍스트 파일 세 개를 만듭니다.
file1.txt
파일1입니다. file1
file2.txt
파일2입니다. file2
file3.txt
파일3입니다. file3
파일을 다 만들었으면 append 명령으로 파일을 추가합니다.
c:\project\filearchive\Debug>filearchive.exe append file1.txt file1.txt 파일 추가 성공 크기: 19 c:\project\filearchive\Debug>dir archive.bin C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 680F-30AE c:\project\filearchive\Debug 디렉터리 ↓ archive.bin 파일이 생성됨 2015-10-11 오전 03:03 287 archive.bin 1개 파일 287 바이트 0개 디렉터리 19,666,407,424 바이트 남음 c:\project\filearchive\Debug>filearchive.exe append file2.txt file2.txt 파일 추가 성공 크기: 19 c:\project\filearchive\Debug>dir archive.bin C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 680F-30AE c:\project\filearchive\Debug 디렉터리 ↓ archive.bin 파일의 크기가 증가함 2015-10-11 오전 03:04 570 archive.bin 1개 파일 570 바이트 0개 디렉터리 19,666,407,424 바이트 남음 c:\project\filearchive\Debug>filearchive.exe append file3.txt file3.txt 파일 추가 성공 크기: 19 c:\project\filearchive\Debug>dir archive.bin C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 680F-30AE c:\project\filearchive\Debug 디렉터리 ↓ archive.bin 파일의 크기가 증가함 2015-10-11 오전 03:05 853 archive.bin 1개 파일 853 바이트 0개 디렉터리 19,666,403,328 바이트 남음
파일 추가가 끝났으면 file1.txt, file2.txt, file3.txt 파일을 모두 삭제합니다. 이제 archive.bin 파일 안에만 텍스트 파일이 들어있습니다.
list 명령으로 파일 목록을 출력해보면 텍스트 파일 세 개의 이름이 출력됩니다.
c:\project\filearchive\Debug>filearchive.exe list 파일 목록: file3.txt file2.txt file1.txt
이제 extract 명령으로 file2.txt 파일을 추출해보겠습니다.
c:\project\filearchive\Debug>filearchive.exe extract file2.txt file2.txt 파일 추출 성공 크기: 19 c:\project\filearchive\Debug>dir file2.txt C 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 680F-30AE c:\project\filearchive\Debug 디렉터리 ↓ file2.txt가 19바이트 크기로 생성됨 2015-10-11 오전 03:06 19 file2.txt 1개 파일 19 바이트 0개 디렉터리 19,666,399,232 바이트 남음
현재 폴더에 file2.txt 파일이 생성되고, 메모장으로 내용을 보면 앞에서 생성했던 파일의 내용이 온전히 나옵니다.
file2.txt
파일2입니다. file2
명령 프롬프트에서는 다음과 같이 type 명령으로 file2.txt의 내용을 볼 수 있습니다.
c:\project\filearchive\Debug>type file2.txt 파일2입니다. file2
여기서는 아카이브 파일에 텍스트 파일만 넣었는데 여러분들은 bmp, jpg, png 등의 그림 파일이나 다른 형식의 파일들을 추가한 뒤 다시 추출해서 파일이 정상적으로 보이는지 테스트해보세요.
지금까지 파일 아카이브 구현에 대해 배웠는데 아무래도 코드가 길어서 쉽지가 않았을 겁니다. 여기서는 파일 읽기, 쓰기 함수의 동작과 파일 포인터의 위치, 단일 연결 리스트의 포인터 처리 부분이 핵심입니다. 이해가 잘 되지 않는다면 'Unit 71 파일 포인터 활용하기', 'Unit 72 파일에서 구조체를 읽고 쓰기', 'Unit 74 연결 리스트 구현하기'를 복습하는 것이 좋습니다.