PHP复制文件而不改变最后修改日期

12
根据PHP手册中有关Copy()函数的注释:http://php.net/manual/en/function.copy.php copy()函数将改变目标文件的最后修改日期。
有没有一种方法可以在复制文件时不更新最后修改日期呢?
4个回答

20
function copydt($pathSource, $pathDest) {   // copy(), same modification-time
    copy($pathSource, $pathDest) or return FALSE;
    $dt = filemtime($pathSource);
    if ($dt === FALSE) return FALSE;
    return touch($pathDest, $dt);
}

12

有没有一种方法可以复制文件但不更新最后修改时间?

可能没有,但您可以使用touch()将时间修改为您想要的值。


1
谢谢。使用copy() + touch() + filemtime(),所需时间比仅使用copy()长约30%。 - LazNiko

4
你可以使用filemtime()来获取上次修改的日期,然后使用touch()来修改最后修改的日期/时间。

2

PHP文档关于'copy'的注释建议使用exec()命令调用'xcopy'来执行复制。这对我有用,但我更喜欢复制/触摸解决方案。我已经在比较修改时间戳,因此不会影响性能。我没有尝试过,但我认为'nix上的'cp'也可以工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接