0

我正在编写一个程序来使用闪存驱动器升级固件。我需要使用闪存设备中存在的映像升级内核。但我不知道如何在目录中找到带有 zimage 文件扩展名的文件。我是 Qt 和 Linux 的新手。所以我不知道是否可以找到特定格式的文件。任何人都可以帮助解决这个问题。提前致谢。

4

2 回答 2

1

在 Qt 中,没有通用的方法可以访问整个文件系统上的操作系统搜索索引服务。因此,如果这就是您想要的,那么像@BЈовић 提供的特定于操作系统的解决方案将是必要的。

(注意:当程序让我明确指出某些东西的位置时,我实际上更喜欢它,而不是搜索整个文件系统......但如果它能够注意到必要的文件何时与可执行文件位于同一目录中,那就更好了。 )

无论如何...如果您知道要搜索的目录,那么QDir抽象将允许您设置过滤器并枚举与目录中该过滤器匹配的文件名:

QDir dir (zimagePath);
QStringList filters;
filters << "*.zimage";

foreach (QString file, dir.entryList(filters, QDir::Files)) {
    // ...
}

您可以阅读 QDir 文档以了解更多查看方式。

于 2012-07-10T20:52:06.533 回答
0

您可以使用system()执行下一个脚本,并解析输出:

#!/bin/bash

find / -name '*.zimage' | grep .zimage > /tmp/zimage_files.txt

请注意,上面的脚本将搜索所有文件和所有路径,并将输出放到/tmp/zimage_files.txt. 如果您需要不同的东西,则需要对其进行一些修改。

于 2012-07-10T12:04:35.093 回答