Is there a cross-platform开发者_Python百科 function in Qt that is equivalent to the MoveFile function in Windows and the mv command in Linux?
Sure, QDir::rename()
following the old Unix / POSIX tradition of calling this rename.
Which makes sense if you think of a file with its complete path: the underlying inodes just get assigned a different path/file label.
You would use QDir::rename() but be beware of the special cases when rename()
can fail:
On most file systems,
rename()
fails only ifoldName
does not exist, ifnewName
andoldName
are not on the same partition or if a file with the new name already exists. However, there are also other reasons whyrename()
can fail. For example, on at least one file systemrename()
fails ifnewName
points to an open file.
QUrlOperator::copy() is an alternative to QDir::rename() that may also work for you.
精彩评论