【问题标题】:QDir mkdir with absolutepath带绝对路径的 QDir mkdir
【发布时间】:2012-03-27 08:40:24
【问题描述】:

我在使用 Qt 创建目录时遇到问题。 我想在documents'dir中创建一个目录,所以我做了一些这样的事情:

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

但这不起作用!我对分隔符使用“/”和“\”进行了测试,但在这两种情况下都不起作用。

如何创建我的目录?

谢谢。

【问题讨论】:

    标签: qt directory absolute-path mkdir


    【解决方案1】:

    不要使用dir.mkdir(),而是尝试使用QDir::mkpath
    dir.mkpath(path);

    【讨论】:

      【解决方案2】:

      你可以这样做:

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

      【讨论】:

      • 最好 dir.mkpath(".") 如此处所述:stackoverflow.com/a/11517874/4706859 否则,如果必须创建多个文件夹,对 dir.mkdir() 的调用将失败。另请注意,除非您真的打算对其结果做某事,否则无需测试目录是否存在。另一方面,测试 dir.mkpath() 是否成功可能很有用。
      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-07-26
        • 1970-01-01
        • 2012-04-18
        • 2015-10-15
        • 2015-08-20
        • 1970-01-01
        • 2011-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多