如何将文件移动到Qt

时间:2017-07-17 07:25:48

标签: c++ qt qt5 qfile qfileinfo

我是Qt的初学者,我的项目的一部分是将现有文件移动到另一个现有目录?有人能给我一个具体的例子吗?我不确定是否应该使用Qfile :: rename()。我尝试写这样的

QDir::rename("/home/joshua/test.txt","/home/joshua/test/test_c.txt"); 

但错误是无法调用成员函数'bool QDir :: rename(const QString&,const QString&)'没有对象          一个QDir ::重命名( “/家/约书亚/ test.txt的”, “/家庭/约书亚/测试/ test_c.txt”);                                                                             ^

对不起伙计们,一切都是我的错,我问了一个如此不清楚和如此愚蠢的问题,我很抱歉浪费你的时间,我是初学者,在我问这个问题之前,我真的没有注意到这个问题之前有人问过,因为我的水平很低。因为我太天真了,我不能再提问了,所以请原谅我问这个问题,因为我在公司实习,我太压力了,我对我的项目很难,所以我别无选择浪费你的时间,最后,我想感谢那些曾经看过我的问题的人。

2 个答案:

答案 0 :(得分:6)

根据documentation

  

bool QFile :: rename(const QString& newName)

     

将fileName()当前指定的文件重命名为newName。返回   如果成功则为真;否则返回false。

在您的情况下,您必须执行以下操作:

QFile file("/home/joshua/test.txt");
file.rename("/home/joshua/test/test_c.txt");

答案 1 :(得分:0)

QDir::rename()QDir的实例方法,因此您需要一个QDir对象来调用它(此目录将成为传递的文件名的基础)。对于您的示例,例如:

QDir d("/home/joshua");
bool renamed = d.rename("test.txt" , "test/test_c.txt");

您需要使用返回值。

或者,您可以使用QFile::rename() - 默认目录是进程的当前工作目录。