PEAR Manual
Prev |  | Next

# Archive_Tar::extractList()

Archive_Tar::extractList() -- extract a list files

## Synopsis

    require_once 'Archive/Tar.php';

``boolean extractList` (array $filelist [, string $path = '' [, string $remove_path = '']])`

## Description

This method extracts only the files from the archive that are indicated in the `$filelist`. These files are extracted in the current directory or in the directory indicated by the optional `$path` parameter.

## Parameter

- `string $filelist` - an array of filenames and directory names, or a single string with names separated by a single blank space.

- `string $path` - the path of the directory where the files and/or directory need to by extracted.

- `string $remove_path` - part of the memorized path that can be removed if present at the beginning of the files or directories path.

## Return value

`boolean` - Returns `TRUE` on success, `FALSE` on failure.

## Throws

Table 38-1. Possible PEAR_Error values

Error code | Error message | Reason | Solution
--- | --- | --- | ---
`NULL` | " Unable to open in read mode `archive` " | The file is exclusively locked by another application. | Check for other applications working on the file. This can not be caused by a competive processing the archive with Archive_Tar
`NULL` | " Unable to open in write mode `archive` " | The file is locked by another application. | Check for other applications working on the file. This maybe caused by a competive processing the archive with Archive_Tar
`NULL` | " Invalid extractlist mode `mode` " | Implementation error | Should not occur, please set up a bug report.
`NULL` | " Directory `name` already exists as a file " | A file is marked up as directory in the archive. | Maybe a corrupted archive.
`NULL` | " File `name` already exists as a directory " | A directoy is marked up as file in the archive. | Maybe a corrupted archive.
`NULL` | " File `name` already exists and is write protected. " | The archive contains a file which already exists in the destination dir and can not be overwritten. | Extract the archive to an empty directory.
`NULL` | " Unable to create path for `name` " | One or more new nested directories could not be created in the destination directory. | Ensure the destination directory and all nested directories have the required permissions.
`NULL` | " Unable to create directory `name` " | A directory could not be created in the destination directory. | Ensure the destination directory has the required permissions.
`NULL` | " Error while opening `name` in write binary mode " | The file could not be created. | The file is maybe locked.
`NULL` | " Extracted file `filename` does not have the correct file size `filesize` (`size` expected). Archive may be corrupted. " | Read the message. | Read the message.

## Note

This function can not be called statically.

## Example

Example 38-1. Extract compressed archive
    // tarname.tar with files :
    //   dev/data/file.txt
    //   dev/data/log.txt
    //   readme.txt

    $tar_object = new Archive_Tar("tarname.tar");
    $tar_object->extractList("dev/data/file.txt readme.txt", "install",
                             "dev");

    // Files will be extracted there :
    //   install/data/file.txt
    //   install/readme.txt

Prev | Home | Next
Archive_Tar::extract() | Up | Archive_Tar::extractModify()