搜索ini配置文件,获取文件路径
代码
QString searchConfigFile()
{
QString binDir = QCoreApplication::applicationDirPath();
printLog("exe文件所在目录: " + binDir);
QString fileName = "config.ini";
printLog("搜索的目标文件名称: " + fileName);
QStringList searchList;
searchList.append(binDir + "/../config" + configPath);
searchList.append(binDir + "/config" + configPath);
foreach(QString dir, searchList)
{
QFile file(dir + "/" + fileName);
if (file.exists())
{
fileName = QDir(file.fileName()).canonicalPath();
printLog("fileName[" + fileName + "] found.");
return fileName;
}
}
printLog("fileName[" + fileName + "] not found.");
return nullptr;
}
设置全局变量
qglobal.h
#ifndef GlobalVar_h
#define GlobalVar_h
#include <QString>
extern QString fileSeparator;
#endif
qglobal.cpp
#include "globalvar.h"
QString fileSeparator;
加载ini配置文件,读取参数
代码
void loadInitData()
{
fileSeparator = QDir::separator();
QString configPath = searchConfigFile();
QSettings *configIniRead = new QSettings(configPath, QSettings::IniFormat);
configIniRead->setIniCodec(QTextCodec::codecForName("UTF-8"));
QString fileSeparatorTxt = configIniRead->value("fileSeparator").toString();
if(0 == fileSeparatorTxt.length())
{
QMessageBox::information(nullptr, "信息", "没有获取到分隔符配置信息", QMessageBox::Ok, QMessageBox::NoButton);
}
else
{
fileSeparator = fileSeparatorTxt;
}
}