QDir对某个目录内文件名进行模糊搜索

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

你可能感兴趣的:(QDir对某个目录内文件名进行模糊搜索)