如何在Qt中移动文件?

sas*_*alm 23 c++ qt

Qt中是否存在跨平台功能,相当于Windows中的MoveFile功能和Linux中的mv命令?

Dir*_*tel 25

当然,QDir::rename()遵循旧的Unix/POSIX传统调用此重命名.

如果您考虑具有完整路径的文件,这是有意义的:基础inode 只是被分配了不同的路径/文件标签.

  • 还有QFile :: rename()可能是有用的. (2认同)

Pal*_*mik 9

您可以使用QDir :: rename(),但要注意rename()失败时的特殊情况:

在大多数文件系统上,rename()仅当oldName不存在,如果 newNameoldName不在同一分区上或者已存在具有新名称的文件时才会失败.但是,还有其他原因导致 rename()失败.例如,rename()如果newName指向打开的文件,则至少有一个文件系统失败.