का उपयोग कर एक ज़िप फ़ाइल को अनजिप करें मेरे पास एक archive.zip है जिसमें दो क्रिप्ट ".txt" फ़ाइलें हैं। मैं उन 2 फ़ाइलों को पुनर्प्राप्त करने के लिए संग्रह को डिक्रॉप करना चाहता हूं।zlib
यहाँ मैं अब तक क्या किया है है:
FILE *FileIn = fopen("./archive.zip", "rb");
if (FileIn)
printf("file opened\n");
else
printf("unable to open file\n");
fseek(FileIn, 0, SEEK_END);
unsigned long FileInSize = ftell(FileIn);
printf("size of input compressed file : %u\n", FileInSize);
void *CompDataBuff = malloc(FileInSize);
void *UnCompDataBuff = NULL;
int fd = open ("archive.zip", O_RDONLY);
CompDataBuff = mmap(NULL, FileInSize, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
printf("buffer read : %s\n", (char *)CompDataBuff);
uLongf UnCompSize = (FileInSize * 11/10 + 12);
UnCompDataBuff = malloc(UnCompSize);
int ret_uncp ;
ret_uncp = uncompress((Bytef*)UnCompDataBuff, &UnCompSize, (const Bytef*)CompDataBuff,FileInSize);
printf("size of uncompressed data : %u\n", UnCompSize);
if (ret_uncp == Z_OK){
printf("uncompression ok\n");
printf("uncompressed data : %s\n",(char *)UnCompDataBuff);
}
if (ret_uncp == Z_MEM_ERROR)
printf("uncompression memory error\n");
if (ret_uncp == Z_BUF_ERROR)
printf("uncompression buffer error\n");
if (ret_uncp == Z_DATA_ERROR)
printf("uncompression data error\n");
मैं हमेशा "असंपीड़न डेटा त्रुटि" हो जाते हैं और मैं पता नहीं क्यों। और फिर मैं जानना चाहता हूं कि मेरे डेटा के साथ 2 फ़ाइलों को असम्पीडित कैसे किया जाए।
ओह वास्तव में, मैं यह सुनिश्चित करें कि zlib ज़िप के साथ सौदा होता था .. वैसे भी जानकारी के लिए धन्यवाद! :) – user1336204
zlib वास्तव में ज़िप प्रसंस्करण के साथ मदद कर सकता है, और स्रोत वितरण ज़िप फ़ाइलों को संसाधित करने के लिए योगदान कोड के साथ आता है। मेरा जवाब देखें –
ओह, और libzip zlib का उपयोग करता है। –