ZIP_NAME_LOCATE(3) Library Functions Manual ZIP_NAME_LOCATE(3)

zip_name_locate
get index of file by name

libzip (-lzip)

#include <zip.h>

zip_int64_t
zip_name_locate(zip_t *archive, const char *fname, zip_flags_t flags);

The zip_name_locate() function returns the index of the file named fname in archive. If archive does not contain a file with that name, -1 is returned. The flags are specified by or'ing the following values, or 0 for none of them.
Ignore case distinctions. (Will only work well if the file names are ASCII.) With this flag, zip_name_locate() will be slow for archives with many files.
Ignore directory part of file name in archive. With this flag, zip_name_locate() will be slow for archives with many files.
Compare against the unmodified names as it is in the ZIP archive.
(Default.) Guess the encoding of the name in the ZIP archive and convert it to UTF-8, if necessary, before comparing. (Only CP-437 and UTF-8 are recognized.)
Follow the ZIP specification and expect CP-437 encoded names in the ZIP archive (except if they are explicitly marked as UTF-8). Convert it to UTF-8 before comparing.
Note: ASCII is a subset of both CP-437 and UTF-8.

zip_name_locate() returns the index of the file named fname or -1, if archive does not contain an entry of that name.

zip_name_locate() fails if:
[]
One of the arguments is invalid.
[]
Required memory could not be allocated.
[]
No entry of the name fname is found in the archive.

libzip(3), zip_get_name(3)

zip_name_locate() was added in libzip 0.6. In libzip 0.11 the return type was changed from int to zip_int64_t. In libzip 0.11 the type of flags was changed from int to zip_flags_t.

Dieter Baron <dillo@nih.at> and Thomas Klausner <tk@giga.or.at>
September 22, 2020 NiH