我正在使用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);
}
}
文件已重命名,但它与临时文件保持在同一目录中。我没有弄到什么问题。
答案 0 :(得分:3)
也许试试
bool check = r.rename("temp.txt", newpath);
我看到你有一个名为QString
的{{1}}未在重命名调用中使用,但你传递了newpath
,你已经将newname
附加到newpath
线。从您发布的代码看起来就像您只是给出了一个新名称,因此结果文件与原始文件位于同一文件夹中但是为了重命名。
请记住,即使提供完整路径QDir::rename,如果源路径和目标路径不在同一分区上,或者出于文档中提到的更多原因,也会失败。