在Qt中,保存文件时如果指定的路径中的上级文件夹不存在,系统默认是不会自动创建这些文件夹的。你需要在保存文件之前手动检查并创建这些上级文件夹。
你可以使用QDir
类的mkpath()
函数来实现递归创建多级目录。下面是一个示例代码:
#include <QCoreApplication>
#include <QDebug>
#include <QDir>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QString filePath = "/path/to/new/folder/file.txt";
QDir dir;
if (dir.mkpath(QFileInfo(filePath).absolutePath())) {
qDebug() << "Directories created successfully.";
// 在这里执行保存文件操作
} else {
qDebug() << "Failed to create directories.";
}
return 0;
}
在这个示例中,我们使用QDir
的mkpath()
函数来递归地创建指定路径中的上级目录。首先通过QFileInfo(filePath).absolutePath()
获取到除了文件名的绝对路径,并传递给mkpath()
函数进行创建。如果目录创建成功,则输出”Directories created successfully.“,接着你就可以在该路径下执行保存文件操作了。
请注意将示例代码中的”/path/to/new/folder/file.txt”替换为你要保存的实际文件路径。
内容由零声教学AI助手提供,问题来源于学员提问