ZIP_FILE_SET_MTIME(3)

ZIP_FILE_SET_MTIME(3) | Library Functions Manual | ZIP_FILE_SET_MTIME(3)

# NAME

`zip_file_set_dostime`, `zip_file_set_mtime` — set last modification time (mtime) for file in zip

# LIBRARY

libzip (-lzip)

# SYNOPSIS

`#include <zip.h>`

int
`zip_file_set_dostime`(zip_t *archive, zip_uint64_t index, zip_uint16_t dostime, zip_uint16_t dosdate, zip_flags_t flags);

int
`zip_file_set_mtime`(zip_t *archive, zip_uint64_t index, time_t mtime, zip_flags_t flags);

# DESCRIPTION

The `zip_file_set_mtime`() function sets the last modification time (mtime) for the file at position index in the zip archive to mtime. Currently, no support for any flags is implemented.

In the zip archive, the time and date are saved as two 16-bit integers. To set the values directly, call the `zip_file_set_dostime`() function. The values of the time bytes are defined as follows:

0-4
  seconds divided by two (1-2 = 1, 3-4 = 2, ...)
5-10
  minute (0-59)
11-15
  hour (0-23)

The values of the date bytes are defined as follows:

0-4
  day of the month (1-31)
5-8
  month (January = 1, February = 2, ...)
9-15
  year offset from 1980 (1980 = 0, 1981 = 1, ...)

# RETURN VALUES

Upon successful completion 0 is returned. Otherwise, -1 is returned and the error information in archive is set to indicate the error.

# ERRORS

`zip_file_set_dostime`() and `zip_file_set_mtime`() fail if:

[`ZIP_ER_INVAL`]
  index is not a valid file index in archive.
[`ZIP_ER_MEMORY`]
  Required memory could not be allocated.
[`ZIP_ER_OPNOTSUPP`]
  Traditional PKWare encryption uses the file's mtime, therefore it cannot be changed without re-encrypting the data.
[`ZIP_ER_RDONLY`]
  The archive was opened in read-only mode.

# SEE ALSO

libzip(3), zip_stat(3)

# HISTORY

`zip_file_set_mtime`() was added in libzip 1.0. `zip_file_set_dostime`() was added in libzip 1.6.

# AUTHORS

Dieter Baron <dillo@nih.at> and Thomas Klausner <wiz@gatalith.at>

# CAVEATS

Following historical practice, the `zip_file_set_mtime`() function translates the time from the zip archive into the local time zone. If you want to avoid this, use the `zip_file_set_dostime`() function instead.

June 18, 2022 | NiH