如何解决如何防止copy错误地仅复制文件的一部分?
我使用PHP的copy()
函数复制文件。令我震惊的是,我发现它仅复制了我的15473297984字节大.7z文件中的2588396096字节。
它正在两个本地磁盘之间复制。两者都使用NTFS。 PHP 7.4.11。 Windows 10专业版2004。
请不要告诉我使用exec('xcopy blabla')
之类的东西,因为这会破坏跨平台性,这是我必须保留的。我想了解为什么copy()
与许多其他内置的PHP函数一样,有一些严重的,未记录的限制。这是出乎意料的,因为我认为复制文件之类的东西可能不会损坏。
我确实读过用户提交的评论,说有与此相关的内容,但是他声称它的存储空间为4 GB(对我而言不是这种情况),他没有解释原因。
这是一项重要的任务,我不能只默默地“切断”这样的文件。尤其令人担忧的是,它甚至没有达到传闻中的4 GB限制。
我的Windows是64位的,其他所有软件都是BTW,所以我无法使用32位的旧版操作系统对此进行解释。
最小代码示例:
var_dump(copy('C:\test\big.7z','D:\test\big.7z'));
结果(几秒钟后):
bool(true)
目标文件为2.41 GB-实际文件的一小部分。即使不成功,它也会错误地返回“ true”?显然,认为是成功的。
没有记录任何错误。是的,错误日志记录已打开。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。