无法使用QDir :: rename()重命名Qt中的文件

时间:2013-03-14 17:49:53

标签: file qt text rename qdir

我正在使用QDir::rename()重命名临时文件。

这是我的代码:

// change the temporary filename
void save::finish()
{
    QString newpath = ui->path->text();

    QString newname = ui->filename->text();

    newpath.append("/");
    newpath.append(newname);
    newpath.append(".txt");

    QDir r;

    bool check = r.rename("temp.txt", newname);

    if (check == true)
    {
        QMessageBox::warning(this,"Error","Saved successfully!", QMessageBox::Ok);
        close();
    }

    else
    {
        QMessageBox::warning(this,"Error","Error saving! Please try again.", QMessageBox::Ok);
    }
}

文件已重命名,但它与临时文件保持在同一目录中。我没有弄到什么问题。

1 个答案:

答案 0 :(得分:3)

也许试试

bool check = r.rename("temp.txt", newpath);

我看到你有一个名为QString的{​​{1}}未在重命名调用中使用,但你传递了newpath,你已经将newname附加到newpath线。从您发布的代码看起来就像您只是给出了一个新名称,因此结果文件与原始文件位于同一文件夹中但是为了重命名。

请记住,即使提供完整路径QDir::rename,如果源路径和目标路径不在同一分区上,或者出于文档中提到的更多原因,也会失败。