Как я могу удалить папку из архива .tar? - PullRequest
1 голос
/ 04 июля 2019

Я хочу удалить каталог из файла архива TAR.Я использовал класс PharData, но не знаю, как удалить каталог.

Я попробовал метод Phardata::delete(), но он уничтожает только пустые папки в файле TAR и не может удалить другие папки.

Я попробовал приведенный ниже код, чтобы удалить папки из ZIP-файлов, и это хорошо работает.Этот код не работал в объектах PharData.Как я могу сделать это в файле TAR?

private function deleteArchiveDirectory($directory){
    // When archive object is ZipArchive` 
    if ($this->archiveObject instanceof ZipArchive) { 
        $numFiles = $this->archiveObject->numFiles;   
        $folderToDelete = $directory;  //folder to delete relative to root
        for ($i = 0; $i < $numFiles; $i++) {     
            $entryInfo = $this->archiveObject->statIndex($i);
            if (substr($entryInfo["name"], 0, 
            strlen($folderToDelete)) == $folderToDelete) {
                $this->archiveObject->deleteIndex($i);
            }
        }
    }
    // When archive object is PharData
    if ($this->archiveObject instanceof PharData) {
        // How can I do it enter code here
    }
}
...