ChatGPT解决这个技术问题 Extra ChatGPT

在 Qt、C++ 中检查文件夹是否存在(并创建文件夹)

在 Qt 中,如何检查给定文件夹是否存在于当前目录中?如果它不存在,我该如何创建一个空文件夹?


K
Kyle Lutz

要检查名为“文件夹”的目录是否存在,请使用:

QDir("Folder").exists();

要创建一个名为“MyFolder”的新文件夹,请使用:

QDir().mkdir("MyFolder");

这个答案与@Petrucio 的答案相比如何?我无法从文档中推断出这一点。
为什么不是静态的? QDir::exists("absolutepath")QDir::mkdir(""absolutepath")
@yalov - 因为它会与非静态 QDir::mkdir("relative_path") 发生冲突。不可能同时拥有两个重载。
@JonasG.Drange 此答案不会在复杂/路径/结构/with/intermediate/folders 中创建中间文件夹。我的回答客观上更好;它的赞成票较少的原因是因为它是在此之后两年发布的。
M
ManuelSchneid3r

检查它是否存在并创建如果它不存在,包括中介:

QDir dir("path/to/dir");
if (!dir.exists())
    dir.mkpath(".");

为什么要在 dir.mkpath(".") 中传递 "." 参数?
因为 ”。”是当前目录,我们已将其设置为要创建的目录。
V
Vitor Santos

当您使用 QDir.mkpath() 时,如果路径已存在,则返回 true;另一方面,如果路径已存在,则 QDir.mkdir() 返回 false。因此,根据您的程序,您必须选择更适合的程序。

您可以在 Qt Documentation 上查看更多信息


m
matiasf

为什么要用别的东西?

  mkdir(...);

因为你不能在 Qt 中那样使用它。