为了账号安全,请及时绑定邮箱和手机立即绑定

非阻塞工作者-中断文件复制

非阻塞工作者-中断文件复制

C++
月关宝盒 2019-09-27 15:15:12
我正在处理非常大的文件,大小超过数百GB。用户需要能够在磁盘之间移动这些文件,并且该用户位于没有默认文件管理器的受限系统上。用户有可能意识到自己犯了一个错误并取消了操作,据我所知,用户将不得不等待当前的复制或重命名操作完成。这可能会使他们感到沮丧,因为他们等待可能要等待几分钟的时间,只是看到仍然复制了许多GB文件。在复制的情况下,我可以删除第二个文件,但是在重命名的情况下(我正在使用它来移动文件),我必须反向重复该操作才能撤消它,这是完全不可接受的。有没有什么方法可以中断QFile文档中没有看到的copy()和rename(),还是需要将我自己的类放在一起以处理复制和重命名?
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

我认为您正在寻找的功能不存在。

您可以做的是,不是使用copy()函数,而是创建一个新文件,然后从旧文件逐渐读取(qint64 maxSize)到QByteArray,然后将(const QByteArray&byteArray)写入新文件。这样,您可以自己控制流程,只需检查用户是否在每次读/写之间都没有按取消键即可。


查看完整回答
反对 回复 2019-09-27
  • 2 回答
  • 0 关注
  • 443 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信