/* Further optimization could be realized by adding an ability to cache the directory in memory. The goal being a single comprehensive file read to put the file I need in a memory. typedef struct unz_file_pos_s { uLong pos_in_zip_directory; // offset in file uLong num_of_file; // # of file } unz_file_pos;  */
int ZEXPORT unzGetFilePos(unzFile file, unz_file_pos *file_pos)
/* Further optimization could be realized by adding an ability to cache the directory in memory. The goal being a single comprehensive file read to put the file I need in a memory. typedef struct unz_file_pos_s { uLong pos_in_zip_directory; // offset in file uLong num_of_file; // # of file } unz_file_pos;  */
int ZEXPORT unzGetFilePos(unzFile file, unz_file_pos *file_pos)
{
    unz_s* s;
    if (file == NULL || file_pos == NULL)
        return UNZ_PARAMERROR;
    s = (unz_s*)file;
    if (!s->current_file_ok)
        return UNZ_END_OF_LIST_OF_FILE;
    file_pos->pos_in_zip_directory = s->pos_in_central_dir;
    file_pos->num_of_file = s->num_file;
    return UNZ_OK;
}