File 无法使用QDir::rename()重命名Qt中的文件
我正在使用File 无法使用QDir::rename()重命名Qt中的文件,file,qt,text,rename,qdir,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); ne
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);
}
}
该文件已重命名,但与临时文件位于同一目录中。我不知道怎么回事。试试看
bool check = r.rename("temp.txt", newpath);
我看到您有一个名为newpath
的QString
,它没有在重命名调用中使用,但是您传递了newname
,您刚刚在前一行中附加到newpath
。从您发布的代码来看,您的文件似乎只是提供了一个新名称,因此,为什么结果文件与原始文件位于同一文件夹中,但却被重命名了
请记住,即使提供完整路径,如果源路径和目标路径不在同一分区上,或者由于文档中提到的其他一些原因,也会失败。目标文件夹是否存在?我确信您已经打印了一个新路径,以确保它是指向新位置的有效路径。真奇怪,重命名没有发生。你在哪个操作系统上运行这个?以防万一,在将新创建的“newpath”变量发送到rename Method之前,请通过QDir::TonativeParators()运行该变量。我想这就是问题所在。只是缺乏关注。我的错。