我正在使用ZipArchive
从ZIP文件中提取文件。
这是我正在使用的代码
$zip = new ZipArchive;
$res = $zip->open($file);
if ($res === TRUE) {
$zip->extractTo('test/');
$zip->close();
}
它的运行正常,但是提取文件的最后修改日期会变为当前时间。
我该如何保留提取文件的原始最后修改日期?
我正在使用ZipArchive
从ZIP文件中提取文件。
这是我正在使用的代码
$zip = new ZipArchive;
$res = $zip->open($file);
if ($res === TRUE) {
$zip->extractTo('test/');
$zip->close();
}
它的运行正常,但是提取文件的最后修改日期会变为当前时间。
我该如何保留提取文件的原始最后修改日期?
$res = $zip->open($filename);
if($res === true) {
$zip->extractTo($dataDir);
for($i=0; $i<$zip->numFiles; $i++){
touch($dataDir . $zip->statIndex($i)['name'], $zip->statIndex($i)['mtime']);
}
$zip->close();
}
$dataDir 需要以斜杠结尾。mtime
值找到了一种方法。$zip = new ZipArchive;
$res = $zip->open($file);
if ($res === TRUE) {
$filename = $mtime = $zip->statIndex(0)['name'];
$zip->extractTo('test/');
touch('test/'.$filename, $zip->statIndex(0)['mtime']); // Change the modified date of the extracted file.
$zip->close();
}