QDir使用绝对路径创建文件夹。

14

我在使用Qt时遇到了创建文件夹的问题。 我想要在“文档”文件夹下创建一个文件夹,所以我进行了一些操作,类似于:

QString path("C:/Users/Me/Documents/MyApp/profiles/");
Qdir dir = QDir::root();
dir.mkdir(path);

但是那样不起作用!我已经测试了“/”和“\”作为分隔符,但在这两种情况下都不起作用。

我应该如何创建我的目录?

谢谢。

3个回答

40

你可以这样做:

QDir dir(path);
if (!dir.exists()){
  dir.mkdir(".");
}

9
最好按照这里所述使用dir.mkpath("."):https://dev59.com/X3E95IYBdhLWcg3wlvCz#11517874。否则,如果需要创建多个文件夹,则调用dir.mkdir()将失败。此外,请注意,除非您真的打算对其结果进行操作,否则无需测试目录是否存在。另一方面,对于dir.mkpath()的成功进行测试可能是有用的。 - SR_

23

尝试使用QDir::mkpath替代dir.mkdir()
例如:dir.mkpath(path);


4

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

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

您可能想要调用dir.mkpath(path),它将尝试创建指定的子目录以及通向它的所有必要父目录。同样,您应该检查结果以查看是否成功。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接