update_manager_archive_extract($file, $directory)
Unpacks a downloaded archive file.
Parameters
string $file: The filename of the archive you wish to extract.
string $directory: The directory you wish to extract the archive into.
Return value
Archiver The Archiver object used to extract the archive.
Throws
Exception
File
- core/modules/update/update.manager.inc, line 150
- Administrative screens and processing functions of the Update Manager module.
Code
function update_manager_archive_extract($file, $directory) { $archiver = archiver_get_archiver($file); if (!$archiver) { throw new Exception(t('Cannot extract %file, not a valid archive.', array('%file' => $file))); } // Remove the directory if it exists, otherwise it might contain a mixture of // old files mixed with the new files (e.g. in cases where files were removed // from a later release). $files = $archiver->listContents(); // Unfortunately, we can only use the directory name to determine the project // name. Some archivers list the first file as the directory (i.e., MODULE/) // and others list an actual file (i.e., MODULE/README.TXT). $project = strtok($files[0], '/\\'); $extract_location = $directory . '/' . $project; if (file_exists($extract_location)) { file_unmanaged_delete_recursive($extract_location); } $archiver->extract($directory); return $archiver; }
Please login to continue.