Qt 具有绝对路径的QDir mkdir

Qt 具有绝对路径的QDir mkdir,qt,directory,absolute-path,mkdir,Qt,Directory,Absolute Path,Mkdir,我在使用Qt创建dir时遇到问题。 我想在documents'dir中创建一个dir,因此,我做了如下一些事情: QString path("C:/Users/Me/Documents/MyApp/profiles/"); Qdir dir = QDir::root(); dir.mkdir(path); 但那不行!我用“/”和“\”对分离器进行了测试,但在这两种情况下不起作用 如何创建我的目录 谢谢。不要使用dir.mkdir(),尝试使用QDir::mkpath i、 e.asdir.mk

我在使用Qt创建dir时遇到问题。 我想在documents'dir中创建一个dir,因此,我做了如下一些事情:

QString path("C:/Users/Me/Documents/MyApp/profiles/");
Qdir dir = QDir::root();
dir.mkdir(path);
但那不行!我用“/”和“\”对分离器进行了测试,但在这两种情况下不起作用

如何创建我的目录


谢谢。

不要使用
dir.mkdir()
,尝试使用
QDir::mkpath


i、 e.as
dir.mkpath(路径)

QDir dir=QDir::root()
创建配置为指向root的
QDir
的实例,并将该设置复制到
dir
。为了避免额外的拷贝和代码,可以使用
QDir-dir(QDir::root)。在Windows上,它将指向系统驱动器的根目录,通常是
C:\

dir.mkdir(路径)
将尝试在当前配置的目录(根目录)中创建名为
path
的子目录。此方法需要单个目录名,而不是完整路径。它还返回一个您应该检查的
bool
结果

您可能希望调用它,它将尝试创建指定的子目录以及指向它的所有必需的父目录。同样,您应该检查结果是否成功。

您可以这样做:

QDir dir(path);
if (!dir.exists()){
  dir.mkdir(".");
}
最好是此处所述的dir.mkpath(“.”):否则,如果必须创建多个文件夹,则对dir.mkdir()的调用将失败。还要注意,除非您真的打算对目录的结果做些什么,否则不需要对目录的存在性进行测试。另一方面,测试dir.mkpath()是否成功可能很有用。