---
name: "zip_file_rename"
section: "3"
platform: "linux"
package: "libzip"
version: "1.11.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/zip_file_rename"
---

# zip\_file\_rename(3)

rename file in zip archive

## NAME

**zip\_file\_rename** – rename file in zip archive

## LIBRARY

libzip (-lzip)

## SYNOPSIS

**#include \<zip.h\>**

*int*\

**zip\_file\_rename**(*zip\_t \*archive*, *zip\_uint64\_t index*, *const char \*name*, *zip\_flags\_t flags*);

## DESCRIPTION

The file at position *index* in the zip archive *archive* is renamed to *name*. The *flags* argument can be any of:

- ZIP\_FL\_ENC\_GUESS

  Guess encoding of *name* (default). (Only CP-437 and UTF-8 are recognized.)

- ZIP\_FL\_ENC\_UTF\_8

  Interpret *name* as UTF-8.

- ZIP\_FL\_ENC\_CP437

  Interpret *name* as code page 437 (CP-437).

## RETURN VALUES

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

## ERRORS

**zip\_file\_rename**() fails if:

- \[ZIP\_ER\_DELETED\]

  The file to be renamed has been deleted from the archive.

- \[ZIP\_ER\_EXISTS\]

  There is already a file called *name* in the archive.

- \[ZIP\_ER\_INVAL\]

  *index* is not a valid file index in *archive*, *name* *is* NULL, the empty string, or not a valid UTF-8 encoded string. Also a file cannot be renamed to a directory or vice versa. Directories are denoted by a trailing slash.

## SEE ALSO

[libzip(3)](/libzip/3.md), [zip\_unchange(3)](/zip_unchange/3.md)

## HISTORY

**zip\_file\_rename**() was added in libzip 0.11.

## AUTHORS

Dieter Baron ⟨*dillo@nih.at*⟩ and Thomas Klausner ⟨*wiz@gatalith.at*⟩
