QT 查找当前目录下指定类型的文件
时间: 2023-12-27 17:01:58 浏览: 294
你可以使用 QDir 类来查找当前目录下指定类型的文件。以下是一个示例代码:
```c++
#include <QDir>
#include <QStringList>
int main()
{
QDir dir(".");
QStringList filters;
filters << "*.txt"; // 指定类型为 txt 文件
dir.setNameFilters(filters);
QList<QFileInfo> fileInfoList = dir.entryInfoList();
for (int i = 0; i < fileInfoList.size(); ++i) {
QFileInfo fileInfo = fileInfoList.at(i);
qDebug() << fileInfo.fileName();
}
return 0;
}
```
在这个示例代码中,我们首先创建了一个 QDir 对象来表示当前目录。然后,我们创建了一个 QStringList 对象来存储文件类型的过滤器,这里我们指定为 "*.txt" 表示只查找 txt 类型的文件。接着,我们将过滤器设置到 QDir 对象中,调用 entryInfoList() 函数获取当前目录下的文件信息列表,最后遍历列表并输出文件名。
相关问题
qt 获取目录下的.zip文件
在Qt中获取目录下的.zip文件,你可以使用`QDir`类来遍历文件系统,然后检查文件是否为`.zip`格式。以下是一个简单的示例:
```cpp
#include <QDir>
#include <QFile>
QStringList zipFiles(QDir directory) {
QStringList fileNames;
foreach (const QString &fileName, directory.entryList()) {
if (fileName.endsWith(".zip")) { // 检查文件名是否以.zip结尾
QFile file(directory.path() + QDir::separator() + fileName);
if (file.exists() && file.isReadable()) {
fileNames.append(fileName); // 如果存在且可读,则添加到列表中
}
}
}
return fileNames;
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 使用QDir获取当前工作目录下的.zip文件
QDir dir(QStringLiteral(".")); // 或者替换为你想要查找的路径
QStringList zipFilesInCurrentDir = zipFiles(dir);
for (const QString &fileName : zipFilesInCurrentDir) {
qDebug() << "Found .zip file: " << fileName;
}
return app.exec();
}
```
在这个例子中,我们首先创建了一个`QDir`对象来表示指定的目录,然后通过`entryList()`遍历该目录下的所有文件。如果找到一个文件名字是以".zip"结束的,并且文件存在并且可读,我们就将其添加到结果列表中。
QT 程序如何能够访问运行目录下的所有目录及文件
在Qt程序中,要访问运行目录下的所有目录和文件,可以使用QDir类配合路径操作。QDir提供了一系列方便的方法来遍历目录结构和查找文件。以下是基本步骤:
1. 导入所需的头文件:
```cpp
#include <QDir>
```
2. 创建一个QDir对象,指定当前工作目录或需要访问的根目录。如果是在运行目录下,通常使用"./"表示:
```cpp
QDir dir(".");
```
或者相对路径:
```cpp
QDir dir(QStandardPaths::writableLocation(QStandardPaths::TempLocation));
```
3. 使用`entryList()`方法获取目录下的所有文件和子目录名:
```cpp
QStringList entries = dir.entryList(QDir::Dirs | QDir::Files);
```
4. 遍历并处理这些条目,例如打开文件或创建新目录:
```cpp
for (const QString &entry : entries) {
if (QFile::exists(entry)) { // 检查是否为文件
QFile file(entry);
// 文件操作...
} else if (dir.isDir(entry)) { // 检查是否为目录
QDir subdir(entry);
// 目录操作...
}
}
```
阅读全文