【发布时间】:2011-02-06 21:01:55
【问题描述】:
Qt中是否有相当于Windows中MoveFile函数和Linux中mv命令的跨平台功能?
【问题讨论】:
Qt中是否有相当于Windows中MoveFile函数和Linux中mv命令的跨平台功能?
【问题讨论】:
当然,QDir::rename() 遵循旧的 Unix / POSIX 调用此重命名的传统。
如果您考虑一个具有完整路径的文件,这是有道理的:底层 inode 只是被分配了不同的路径/文件标签。
【讨论】:
您可以使用QDir::rename(),但要注意rename() 可能失败的特殊情况:
在大多数文件系统上,
rename()失败 仅当oldName不存在时,如果newName和oldName不在 相同的分区,或者如果一个文件与 新名称已存在。然而, 还有其他原因rename()可能会失败。例如,在 至少一个文件系统rename()失败 如果newName指向一个打开的文件。
【讨论】:
QUrlOperator::copy() 是 QDir::rename() 的替代品,也可能对您有用。
【讨论】: