下面这个代码更改文件夹无效QString p = QCoreApplication::applicationDirPath() + "/Database/prints/" + printfilename; QDir dir(p); if (dir.exists()) { bool success= dir.rename(printfilename,printname); }
时间: 2024-01-16 11:02:00 浏览: 64
你可以尝试使用绝对路径来更改文件夹名称。以下是修改后的代码:
```c++
QString p = QCoreApplication::applicationDirPath() + "/Database/prints/" + printfilename;
QDir dir(p);
if (dir.exists()) {
QString newp = QCoreApplication::applicationDirPath() + "/Database/prints/" + printname;
bool success = dir.rename(p, newp);
if (!success) {
qDebug() << "Failed to rename folder";
}
}
```
其中,`newp`是新的文件夹路径。如果文件夹更名失败,会输出一条错误日志。
相关问题
QString path = QCoreApplication::applicationDirPath() + "D://Qt//Qt5.12.12//QT//FaceRecognition//database.db"; m_database = QSqlDatabase::addDatabase("QSQLITE"); m_database.setDatabaseName(path);
你的代码看起来是在使用Qt框架进行数据库操作。你创建了一个名为`path`的QString对象,使用`QCoreApplication::applicationDirPath()`获取了应用程序的目录路径,并将其与数据库文件的路径拼接在一起。然后,你使用`QSqlDatabase::addDatabase()`方法创建了一个SQLite数据库连接,并设置了数据库文件的名称为`path`。
这段代码的目的是创建一个名为`m_database`的SQLite数据库连接对象,并将其与指定的数据库文件关联起来。
QString strDataDir = QApplication::applicationDirPath() + "/../../Data/GridCache";是几层目录
这代码中的`"../../"`表示返回上级目录两次,所以`QApplication::applicationDirPath()`返回的是当前应用程序的目录,再加上`"/../../Data/GridCache"`,就是在当前应用程序目录的上级目录两次后的`Data/GridCache`目录。所以总共是两层目录。
阅读全文