2

我有一个名为 project.zip 的 zip 文件,其结构如下:

project.zip  
  \project  
    \file.pdf  

我需要删除file.pdf。我尝试了以下代码,但出现错误。
谢谢

$zip = new ZipArchive(); 

    $zip_name = 'path\to\project.zip';

    $zip->open( $zip_name );

    $zip->deleteName( 'project\file.pdf' ); 

    $zip->close();

我也尝试使用前导反斜杠但没有成功,

$zip->deleteName('prject\file.pdf');

4

2 回答 2

2

这很奇怪,但似乎您需要在文件名中包含 zip 文件的基本名称,如下所示:

$zip->deleteName( 'project/project/file.pdf' );

尝试这样的事情来看看你的 zip 中的文件名值是什么样的:

for ($i = 0; $i < $zip->numFiles; $i++) {
    $filename = $zip->getNameIndex($i);
    echo $filename . "<br>";
}

完成后不要忘记关闭拉链

$zip->close();
于 2013-06-26T23:29:41.160 回答
1

使用正斜杠:

$zip->deleteName( 'project/file.pdf' ); 
于 2013-06-26T21:38:54.227 回答