파일 병합후 해체할때 질문드려요
글쓴이: bestgodyou / 작성시간: 화, 2013/05/21 - 12:01오후
프로그래밍을 이제 막 공부하고있는 신입입니다.
MFC로 일반 파일들을 하나의 파일로 합쳤다가 다시 나누는 것을 만들어보려고 하는데요
(압축기능은 없어도 됩니다.) 많이 막히다보니 소스코드를 따로 올릴게 없네요..
단순히 파일을 하나로 합치는것은 새로 파일을 만들어서 그 뒤로 데이터들을 붙여버리면 되는거 같긴한데
합쳐진 하나의 파일을 다시 원상복귀하려면 그전에 있던 원본파일들의 파일이름과 크기를 합쳐진 파일에
헤더부분을 만들어서 저장하고 뒤로 데이터를 붙여야 할거같은데...
파일안에 헤더부분을 만들고 불러오려면 어떤식으로 구현해야할지...그저 막막하네요...
- 병합파일.txt -
([파일1 이름][파일1 크기][파일2 이름][파일2 크기][파일3 이름][파일3 크기])..... +
([파일1 데이터][파일2 데이터][파일3 데이터]).....
이렇게 병합을 하고나서 해제 할때는 헤더부분만 읽어서 원하는 파일의 파일 이름이랑
크기로 데이터부분의 시작포인터로 찾아가 파일크기만큼 잘라와서 저장하면 복구가 될거같은데...
이처럼 병합파일안에 헤더부분을 만드는 부분이 막막합니다...
질문이 너무 기초부분이라 죄송합니다.
Forums:
가장 좋은 오픈소스가 있지 않나요?
딱 생각나는게 타르볼이군요 ㅎㅎ
가장 훌륭하고 정답인거 같은데 아닌가요?
앞에 파일 갯수를 명시하고 일정한 길이 사이즈의
앞에 파일 갯수를 명시하고 일정한 길이 사이즈의 배열처럼 헤더를 표시하는 방법 - 배열방식
일정한 길이 사이즈의 배열 뒤에 끝을 나타내는 표시를 넣어서 헤더를 끝맺음 하는 방법 - 리스트방식
일정한 용량(즉, 일정한 갯수)을 헤더로 지정해서 그 한도내에서는 마음껏 병합하게 하는 방법 - 물리디스크방식
기타 등등 여러가지가 있지만 맘껏 상상해보세요.
감사합니다...조금더 초보적인 질문을 한다면..
배열이나 리스트방식 등으로 헤더를 쓰고 데이터를 저장한다는 부분이...생성된 파일을 txt로도 열어서
내용을 확인할 수 있는건가요??
예를들어 file1.txt[size:3,data:111],file2.txt[size:3,data:222] 이 두 파일을 합쳐서 메모장으로 본다면
Hapfile.txt 안에는 [헤더정보+data:111222]만 들어가있는것인지...
그리고 이와같은 여러 합친 임의의 파일들을 FileOpen 했을때 이 합친 파일안에 어떤 파일들이
들어가있는지 헤더부분만 확인한다는게 파일이름,크기,데이터 각 사이사이 특수문자들을 넣어서
한줄씩 읽다가 해당 특수문자가 나왔을때를 기준으로 잘라서 정보들을 가져와야 하는것인지...
아니면 일반적인 FileOpen해서 한줄씩 읽어오는게 아닌것인지...
아...제가 생각해도 너무 정리가 안된 질문이라...ㅠㅠ죄송합니다...
타르볼 오픈소스를 보세요
위에도 써놨듯이 소스보면 가장 훌륭한 답인데 =_=
설명하자면요
C로 보자면 구조체를 하나 만드시구요
구조체 + 파일1내용 + 구조체 + 파일2내용 구조체 + 파일3내용
이렇게 간단하게 생각해 볼 수 있구요
구조체는 사이즈가 고정사이즈이니 구조체가 20바이트면 20바이트 읽고
그다음 구조체 정보를 토대로 그 다음 파일 내용 사이즈만큼 읽어 들이면 되는겁니다.
그리고 다시 다음 구조체를 읽어서 또 그다음 파일을 읽어서 분리하구요
댓글 달기