QStringList SqliteDB::findDbfiles() { QDir dir; dir.setPath("./DbfInUse"); dir.setFilter(QDir::Files | QDir::Hidden); dir.setSorting(QDir::Name); QStringList names = dir.entryList(); QStringList newnames; newnames=names.filter(".dbf"); return newnames; }
以上代码利用QDir类实例化dir
dir.setPath用于设置搜索的目录路径 这里采用相对路径模式 ./DbfInUse 表示当前程序所在目录下的DbfInUse子目录 其它路径同理
dir.setFilter 用于设置搜索条件 QDir::Hidden表示包括隐藏文件
dir.setSorting(QDir::Name)用于指定结果的排序方式 这里按文件名称排序 可以自己参考文档设置为其他方式
QStringList names = dir.entryList();用于将结果绑定到QStringList容器内 实际上 QStringList包含有多个QString
QStringList newnames;
newnames=names.filter(".dbf");
用于将names即目录下的所有文件名中包含有.dbf字串的QString填入newnames中 即所要搜索的结果
一下代码用于将QStringList中的每个QString添加到comboBox中
QStringList list=db.findDbfiles(); foreach (QString name, list) { ui->comboBox_2->addItem(name); }
这里采用foreach语句便利QStringList中的每个QString