---
name: "zip_file_extra_field_delete"
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_extra_field_delete"
---

# zip\_file\_extra\_field\_delete(3)

delete extra field for file in zip

## NAME

**zip\_file\_extra\_field\_delete**, **zip\_file\_extra\_field\_delete\_by\_id** – delete extra field for file in zip

## LIBRARY

libzip (-lzip)

## SYNOPSIS

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

*int*\

**zip\_file\_extra\_field\_delete**(*zip\_t \*archive*, *zip\_uint64\_t index*, *zip\_uint16\_t extra\_field\_index*, *zip\_flags\_t flags*);

*int*\

**zip\_file\_extra\_field\_delete\_by\_id**(*zip\_t \*archive*, *zip\_uint64\_t index*, *zip\_uint16\_t extra\_field\_id*, *zip\_uint16\_t extra\_field\_index*, *zip\_flags\_t flags*);

## DESCRIPTION

The **zip\_file\_extra\_field\_delete**() function deletes the extra field with index *extra\_field\_index* for the file at position *index* in the zip archive.

If *extra\_field\_index* is ZIP\_EXTRA\_FIELD\_ALL, then all extra fields will be deleted.

The following *flags* are supported:

- ZIP\_FL\_CENTRAL

  Delete extra fields from the archive's central directory.

- ZIP\_FL\_LOCAL

  Delete extra fields from the local file headers.

The **zip\_file\_extra\_field\_delete\_by\_id**() function deletes the extra field with ID (two-byte signature) *extra\_field\_id* and index *extra\_field\_index* (in other words, the *extra\_field\_index*'th extra field with ID *extra\_field\_id*) The other arguments are the same as for **zip\_file\_extra\_field\_delete**() (ZIP\_EXTRA\_FIELD\_ALL will delete all extra fields of the specified ID).

Please note that due to the library design, the index of an extra field may be different between central directory and local file headers. For this reason, it is not allowed to specify both ZIP\_FL\_CENTRAL and ZIP\_FL\_LOCAL in *flags*, except when deleting all extra fields (i.e., *extra\_field\_index* being ZIP\_EXTRA\_FIELD\_ALL).

## 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\_extra\_field\_delete**() and **zip\_file\_extra\_field\_delete\_by\_id**() fail if:

- \[ZIP\_ER\_NOENT\]

  *index* is not a valid file index in *archive*.

## SEE ALSO

[libzip(3)](/libzip/3.md), [zip\_file\_extra\_field\_get(3)](/zip_file_extra_field_get/3.md), [zip\_file\_extra\_field\_set(3)](/zip_file_extra_field_set/3.md), [zip\_file\_extra\_fields\_count(3)](/zip_file_extra_fields_count/3.md)

## HISTORY

**zip\_file\_extra\_field\_delete**() and **zip\_file\_extra\_field\_delete\_by\_id**() were added in libzip 0.11.

## AUTHORS

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