代码之家  ›  专栏  ›  技术社区  ›  GG.

如何在Qt中创建具有完整路径的新文件?

  •  16
  • GG.  · 技术社区  · 16 年前

    我是一个Qt初学者,刚刚被这个问题困住了。我在找文件 SomePath/NewDirectoryA/NewFile.kml ( NewFile.kml 将是中唯一的文件 NewDirectoryA ,使此目录仅用于维护项目中的语义)。

    SomePath/NewDirectoryA/NewFile.kml SomePath . 因此,只要我必须创建一个文件,我就可以使用QFile并以ReadWrite或WriteOnly模式打开它。


    我试过了 QFile 具有文件名 但没用。

    请给我一个方法,我可以创建一个新的文件(NewFile.kml)在一个新的目录(NewDirectorA)在一个给定的位置(SomePath)。

    2 回复  |  直到 8 年前
        1
  •  39
  •   kayleeFrye_onDeck    10 年前

    布尔 QFile::open (OpenMode模式)[虚拟]

    注意:在WriteOnly或ReadWrite模式下, 如果相关文件尚未 存在时,此函数将尝试

    Qt的文件创建警告

    Platform Specific Issues

    在类Unix系统和 无法创建。在Windows上并不总是这样,例如 例如,“我的文档”目录通常是不可写的,但是 仍然可以在其中创建文件。

    布尔 QDir::mkdir (const QString&目录名)常量

    创建名为 迪恩。

    QDir::mkpath

    创建目录路径dirPath。

    函数将创建所有父 目录。

        2
  •  5
  •   ymoreau    8 年前

    AFAIK不能直接用 QFile QDir::mkpath 将创建完整路径),然后( QFile::open

    QString path("SomePath/NewDirectoryA/");
    QDir dir; // Initialize to the desired dir if 'path' is relative
              // By default the program's working directory "." is used.
    
    // We create the directory if needed
    if (!dir.exists(path))
        dir.mkpath(path); // You can check the success if needed
    
    QFile file(path + "NewFile.kml");
    file.open(QIODevice::WriteOnly); // Or QIODevice::ReadWrite