QFile::rename()无法重命名文件

时间:2022-05-17 10:36:18
bool isRenamed=QFile::rename(preRenamedName,renamedName);


isRenamed一直返回false.

试过rename方法的非静态版本也不行.

看qtdoc看不出有什么问题..

11 个解决方案

#1


补充下
preRnamedName和renamedName都是绝对路径的

#2


QFile::rename("D:\\11.txt","D:\\123.txt");

#3


引用 2 楼  的回复:
Assembly code
QFile::rename("D:\\11.txt","D:\\123.txt");


preRenamedName "E:/cube.txt"
ranamedName     "E:/cube123.txt"

这样不行?
QFile可以将/转换成\的吧

#4


注意书写的方法。。

#5


不知道楼主怎么用的,我用相对路径实验了一下已经成功了。
代码如下:

#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    bool x= QFile::rename("old.txt","new.txt");
    qDebug()<<x;
    return a.exec();
}

#6


下面是使用绝对路径的,也成功了:

#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    bool x= QFile::rename("D:/programing/renameFile/old.txt","D:/programing/renameFile/new.txt");
    qDebug()<<x;
    return a.exec();
}

#7


引用 4 楼  的回复:
注意书写的方法。。


不是太理解...什么方法...

#8


引用 6 楼  的回复:
下面是使用绝对路径的,也成功了:

#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    bool x= QFile::rename("D:/pr……


我的差不多就是这样的,一直无法重命名...

#9


会不会是权限的问题呢!

#10


引用 9 楼  的回复:
会不会是权限的问题呢!

我有考虑这个问题,这方面是没有问题的

#11


我找到问题了,原因是我在重命名之前,文件已经在我程序的其他模块中被使用了,使用中的文件是不能重命名的(win平台下).

还是谢谢大家了

#1


补充下
preRnamedName和renamedName都是绝对路径的

#2


QFile::rename("D:\\11.txt","D:\\123.txt");

#3


引用 2 楼  的回复:
Assembly code
QFile::rename("D:\\11.txt","D:\\123.txt");


preRenamedName "E:/cube.txt"
ranamedName     "E:/cube123.txt"

这样不行?
QFile可以将/转换成\的吧

#4


注意书写的方法。。

#5


不知道楼主怎么用的,我用相对路径实验了一下已经成功了。
代码如下:

#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    bool x= QFile::rename("old.txt","new.txt");
    qDebug()<<x;
    return a.exec();
}

#6


下面是使用绝对路径的,也成功了:

#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    bool x= QFile::rename("D:/programing/renameFile/old.txt","D:/programing/renameFile/new.txt");
    qDebug()<<x;
    return a.exec();
}

#7


引用 4 楼  的回复:
注意书写的方法。。


不是太理解...什么方法...

#8


引用 6 楼  的回复:
下面是使用绝对路径的,也成功了:

#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    bool x= QFile::rename("D:/pr……


我的差不多就是这样的,一直无法重命名...

#9


会不会是权限的问题呢!

#10


引用 9 楼  的回复:
会不会是权限的问题呢!

我有考虑这个问题,这方面是没有问题的

#11


我找到问题了,原因是我在重命名之前,文件已经在我程序的其他模块中被使用了,使用中的文件是不能重命名的(win平台下).

还是谢谢大家了