나는 우편 번호 아카이브 개의 파일을 작성하기 위해 Java의 표준 라이브러리를 사용하고 있으며이 경우에는 저장할 파일을 알 필요가 없습니다. zip 파일을 미리 작성하십시오. 간단히 새로운 ZipEntry를 작성한 다음 ZipFile 스트림에 작성합니다.초기 파일 크기를 모르는 상태에서 C++로 압축 파일 만들기
반면에 LibArchive와 C++ 용 ZLib는 미리 보관할 파일 정보를 설정해야합니다 : 제 경우에는 압축하려는 데이터가 extern 스트림에서 나오므로 크기를 쿼리 할 수 없습니다 스트림 자체의 초기 파일 정보가 필요하지 않도록 해당 라이브러리를 사용하는 라이브러리/방법이 있습니까?
EDIT 또한 LibArchive의 다음 C++ 코드는 데이터가없는 파일을 포함하는 유효한 ZIP 파일을 생성합니다.
a = archive_write_new();
archive_write_add_filter_gzip(a);
archive_write_set_format_pax_restricted(a);
archive_write_open_filename(a, path.c_str());
entry = archive_entry_new(); // Note 2
archive_entry_set_pathname(entry, entryName.c_str());
archive_entry_set_perm(entry, 0666);
archive_write_header(a, entry);
size_t s = archive_write_data(a, buff, len);
archive_entry_free(entry);
archive_write_close(a);
archive_write_free(a);
권장 사항을 찾는 것이 빠르게 남쪽으로 이동합니다. DOS에 관한 [help] (http://stackoverflow.com/help) 섹션을 참고하십시오. 그리고 Java와 libs에 대한 언급은 C++ 관련 질문에 아무런 의미가 없습니다. –
이것은 매우 stackexchange 커뮤니티의 전형적인 문제입니다 ... – jackb
아니. 우리 모두는 그 일을 겪었습니다. 내가 초보 사용자 일 때도 나에게 일어났다. 일단 당신이 SO 방법을 배우면 그것은 산들 바람입니다. –