Qt QFile/QDir:仅强制移动模式?

Qt QFile/QDir:仅强制移动模式?,qt,Qt,QFile/QDirrename函数在无法移动文件的情况下复制文件 是否有办法提前了解将发生的操作类型 假设我有10gb文件。如果是复制,我肯定会使用我自己的复制功能,并随着操作的进展显示UI 当然,如果快速移动可用,我不想总是使用复制功能。快速浏览Qt源代码表明,在官方API中没有任何方法。因此,我认为你们有两个前进的方向:1。自己编写特定于平台的代码。2.让Qt在不同的线程中进行移动/复制,这样GUI线程就不会被阻塞,如果另一个线程花费的时间太长(可能超过几百毫秒),您可以轻松使用QProg

QFile
/
QDir
rename
函数在无法移动文件的情况下复制文件

是否有办法提前了解将发生的操作类型

假设我有
10gb
文件。如果是复制,我肯定会使用我自己的复制功能,并随着操作的进展显示UI


当然,如果快速移动可用,我不想总是使用复制功能。

快速浏览Qt源代码表明,在官方API中没有任何方法。因此,我认为你们有两个前进的方向:1。自己编写特定于平台的代码。2.让Qt在不同的线程中进行移动/复制,这样GUI线程就不会被阻塞,如果另一个线程花费的时间太长(可能超过几百毫秒),您可以轻松使用QProgressDialog。链接供参考,如果您想浏览Qt是如何做的,可以作为起点(注意Unix和Win-under-the-hood有不同的文件系统引擎实现):(和
d->engine()->rename(newName)
是该函数调用底层引擎的地方)。快速浏览一下Qt源代码就可以发现,在官方API中没有任何方法。因此,我认为有两种方法可以帮助您:1.自己编写特定于平台的代码。2.让Qt在不同的线程中进行移动/复制,这样GUI线程就不会被阻塞,并且如果另一个线程花费的时间太长,您可以轻松地使用QProgressDialog(可能超过几百毫秒)。链接仅供参考,如果您想浏览Qt是如何实现的(注意Unix和Win-under-the-hood有不同的文件系统引擎实现):(和
d->engine()->rename(newName)
是该函数调用基础引擎的地方)。