sashoalm
sashoalm

Reputation: 79527

How to move files in Qt?

Is there a cross-platform function in Qt that is equivalent to the MoveFile function in Windows and the mv command in Linux?

Upvotes: 29

Views: 26050

Answers (3)

Dirk is no longer here
Dirk is no longer here

Reputation: 368271

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.

Upvotes: 31

Palmik
Palmik

Reputation: 2665

You would use QDir::rename() but be beware of the special cases when rename() can fail:

On most file systems, rename() fails only if oldName does not exist, if newName and oldName are not on the same partition or if a file with the new name already exists. However, there are also other reasons why rename() can fail. For example, on at least one file system rename() fails if newName points to an open file.

Upvotes: 9

Brian Driscoll
Brian Driscoll

Reputation: 19635

QUrlOperator::copy() is an alternative to QDir::rename() that may also work for you.

Upvotes: 0

Related Questions