对目录内文件的模糊搜索

  1. QStringList SqliteDB::findDbfiles()  
  2. {  
  3.     QDir dir;  
  4.     dir.setPath("./DbfInUse");  
  5.     dir.setFilter(QDir::Files | QDir::Hidden);  
  6.     dir.setSorting(QDir::Name);  
  7.     QStringList names = dir.entryList();  
  8.     QStringList newnames;  
  9.     newnames=names.filter(".dbf");  
  10.     return newnames;  
  11. }  

以上代码利用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中

  1. QStringList list=db.findDbfiles();  
  2.     foreach (QString name, list)  
  3.     {  
  4.         ui->comboBox_2->addItem(name);  
  5.     }  
这里采用foreach语句便利QStringList中的每个QString

你可能感兴趣的:(对目录内文件的模糊搜索)