LINUX.ORG.RU

Ответ на: комментарий от beastie

ИМХО, лучше брать из фряхи, там хоть лицензия указана. А ты предлагаешь подставить попку эйплу и его армии юристов.

anonymous
()

libarchive? жирно конечно, если просто файлы распаковать, но вариант работоспособный.

WRG ★★★★
()
Ответ на: комментарий от x-signal

«Нужно прочитать .zip файл, и после нужно использовать файлы из него.» читайте внимательно. Нужно файлы читать а не распаковывать, то есть чтобы читать из архива фотографии и отображать их в OpenGL например

JoeCrocker
() автор топика
Ответ на: комментарий от JoeCrocker

читайте внимательно

Формулируйте точнее и учите пунктуацию. «Читать» файлы из архива вообще нельзя, потому что нет там никаких файлов, а есть сжатые данные, которые можно распаковать.

x-signal ★★
()
Ответ на: комментарий от x-signal

Но как мне их использовать без распаковки? Или на момент запуска программы она должна распаковать временно, а потом удалить файлы, или возможна распаковка в Оперативную память?

JoeCrocker
() автор топика
Ответ на: комментарий от x-signal

«Читать» файлы из архива вообще нельзя

Угадай, что делают функции (minizip/unzip.h):

extern int ZEXPORT unzLocateFile OF((unzFile file,
                     const char *szFileName,
                     int iCaseSensitivity));
/*
  Try locate the file szFileName in the zipfile.
  For the iCaseSensitivity signification, see unzStringFileNameCompare
    
  return value :
  UNZ_OK if the file is found. It becomes the current file.
  UNZ_END_OF_LIST_OF_FILE if the file is not found
*/

extern int ZEXPORT unzOpenCurrentFile OF((unzFile file));
/*
  Open for reading data the current file in the zipfile.
  If there is no error, the return value is UNZ_OK.
*/

extern int ZEXPORT unzReadCurrentFile OF((unzFile file,
                      voidp buf,
                      unsigned len));
/*
  Read bytes from the current file (opened by unzOpenCurrentFile)
  buf contain buffer where data must be copied
  len the size of buf.
                
  return the number of byte copied if somes bytes are copied
  return 0 if the end of file was reached
  return <0 with error code if there is an error
    (UNZ_ERRNO for IO error, or zLib error for uncompress error)
*/
cdslow ★★
()
Ответ на: комментарий от cdslow

Угадай, что делают функции (minizip/unzip.h):

Работают с форматом ZIP и сжатыми данными:
unzip.h — IO for uncompress .zip files using zlib
...
This unzip package allow extract file from .ZIP file

x-signal ★★
()
Ответ на: комментарий от x-signal

Имхо, у вас вялый спор ни о чем. Данные там или файл - вопрос чисто понятийный. Что считать файлом? Согласно википедии, например, файл обязан храниться на материальном носителе. Но /dev/null, например, традиционно считается файлом. А если тот же архив смонтировать как FUSE ФС? Станут ли те самые сжатые данные файлами?

JaneDoe
()
Ответ на: комментарий от JaneDoe

Согласен, спор бессмысленный. Но задачу надо формулировать точно, чтобы не говорить потом, что «невнимательно прочитали».

x-signal ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.