问题标签 [qdir]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
138 浏览

qt - QDir::makeAbsolute() 怎么会失败?

文档QDir::makeAbsolute()

将目录路径转换为绝对路径。如果它已经是绝对的,则不会发生任何事情。true如果转换成功则返回;否则返回false

我不清楚从相对路径创建绝对路径是如何失败的。

当然,不能保证一个目录实际上会存在于该绝对路径中,但在大多数情况下,QDirAPI 并不关心目录是否存在,所以如果它在这里所做的事情我会感到惊讶.

0 投票
2 回答
1868 浏览

qt - Qt:如何找到路径的最近的现有祖先,它本身可能存在也可能不存在

激励例子:

在之前的会话中,应用程序已经存储了用户选择的一些路径。与此同时,该路径可能已被删除、移动、重命名或驱动器已卸载。应用程序现在想让用户通过 a 浏览路径,QFileDialog并且为了用户的方便,之前的路径作为文件对话框的起始目录传递,因为新路径可能在旧路径附近。不幸的是,如果 QFileDialog给定一个不存在的起始路径,它默认为当前工作目录,这不太可能对用户有帮助,因为它通常是应用程序的安装目录。

所以我们想预处理旧路径以指向一个实际存在的目录,然后再将其传递给QFileDialog. 如果旧路径不存在,我们想用最近的目录替换它。

那么如何获取文件路径(可能存在也可能不存在)并“向上”搜索该路径,直到找到文件系统中实际存在的东西?

0 投票
1 回答
310 浏览

c++ - Qt:remove() 和 rmdir() 有什么区别

“rmdir”似乎是用来删除目录的,但我也成功地用“remove”删除了目录。拥有“rmdir”而“remove”可以做同样的工作有什么意义?

0 投票
1 回答
667 浏览

python - 通过 QValidator 验证可编辑的 QCombobox 输入是否是目录

在将可编辑的 QCombobox 输入添加到 QCombobox 之前,我尝试验证它是否是目录。

遗憾的是,它不能正常工作,因为当我按 Enter 时,每个输入仍会添加到组合框中。有什么建议么?

编辑:我也尝试在 QLineEdit 上使用验证器,如下所示:

也不行。

编辑:它有点工作......但是当我按下返回时“hasFocus”仍然是True,所以它只是接受输入,然后当然将它添加到组合框中。如果我去掉“if self._input.hasFocus():”如果我输入它不接受任何输入......只要粘贴一个完整的目录路径。所以我需要一种检查编辑是否完成然后检查它是否是目录的方法。据我了解,我只能通过 QValidator 在组合框中检查它......因为它会立即将输入添加到框中......在我可以以任何方式拦截它之前。

编辑:我确实为我的情况找到了解决方案。我只是放弃了整个验证器方法。这样做的目的是防止组合框在没有有效目录的情况下创建新项目......我现在所做的是在完成后通过利用 QLineEdit().editingFinished() 信号来验证输入. 创建新项目后,如果输入无效,我将再次删除它,并且它还让我有机会添加一个错误弹出窗口,告诉用户输入不是目录。

0 投票
1 回答
256 浏览

c++ - QT 如何使用 QDirIterator 访问子目录中的特定目录?

我有数千个文件要通过这样的目录结构:

我有三个月的数据要处理,我需要访问 Target 文件夹,并且只需要到达 Target 文件夹。它们包含我们需要查看的文件,而其他一些文件夹也包含我们不需要查看的 .hdr 文件。

起初,我使用了一个QDirIterator例如:

然而,在运行我的程序后,我意识到这.hdr也会抓取其他文件,我不需要处理这些文件。这是我编写的可以找到所有.hdr文件的代码:

如何遍历目录但只获取目标文件夹中的文件?

0 投票
0 回答
42 浏览

c++ - 无法在服务器 2008 qt QDirIterator 中返回文件路径

我想查看驱动器的整个路径,我是在 Windows 8 和 9 上完成的,路径显示正确。

但是在 Windows 2003 和 2008 中,路径不显示,这是什么问题?我的代码

图片应用

0 投票
1 回答
88 浏览

c++ - 是否存在在 EntryList() 中使用过滤器的更简单方法?

我是 Qt 的新手。我的目录中有两种类型的文件。首先,我需要使用一种类型,然后使用另一种类型。我决定将 EntryList() 与“ .png”和“ .txt”等名称过滤器一起使用,并且效果很好。

但是这种方法需要使用 QStringList() 类型的过滤器作为输入。所以我想知道我能不能用更简单的方式来做,因为我不会多次使用这个过滤器,所以我不想在我的记忆中保留另一个列表。

我现在如何做到这一点:

或者:

PS在这里找不到有用的信息:https ://doc.qt.io/qt-5/qdir.html#entryList

0 投票
0 回答
117 浏览

qt - QDir::SortFlag 成员在 QML 中可用

如何使 QDir::SortFlag 的成员可用于 QML 脚本?例如,如何使用 QDir::SortFlag 枚举或 QDir::SortFlags 的成员从 QML 脚本中填充组合以选择某种排序标准?这是否仅可通过自定义类中的某些 C++ 自定义枚举获得?

0 投票
1 回答
335 浏览

c++ - 如何在 C++ 中调用 QDir 库?

我在我的电脑中下载了 qt 并将 QDir 称为#include<QDir>. 但它提出了错误fatal error: QDir: No such file or directory。无论如何使用 QDir 而不创建 .pro 文件?

我试图创建一个 .pro 文件:

但它不起作用

0 投票
0 回答
67 浏览

c++ - 当设置了 QDir::NoSort 标志时,QDir::entryList() 对文件进行排序

我有一个存储一些图像的本地目录。图片被命名为“1.JPG”、“2.JPG”、“3.JPG”等。当我通过资源管理器查看它们时,它们在名称中按升序排序,即“1.JPG”排在第一位, “2.jpg”是第二个,“3.JPG”是第三个,等等。

现在我想将该目录中的所有文件名上传到QStringList我的应用程序中。它是这样完成的:

imagesToMergea在哪里QStringList,我想包含所有文件名;

问题是,当我查看此列表时(qDebug()例如,使用

  1. “1.JPG”
  2. “10.JPG”
  3. “11.JPG”

    ...

    1. “9.JPG”

这不是我想要的行为。

我尝试在 中设置QDir::NoSort标志QDir::entryList(),但没有任何影响。

有没有办法让这个函数按照我想要的方式运行?如果没有,有没有其他方法?

提前致谢!