直接打开最新的日志文件:
/**
* @brief TaskInfo::openLogFileDialog
* @abstract 打开日志文件
* @param errInfo
*/
void TaskInfo::openLogFileDialog()
{
QString fileDir = getLogFolder();
/*获取最新的数据*/
QString fileName = FileIO::fileIO.getLastFileName(fileDir);
bool is_open = QDesktopServices::openUrl(QUrl(QString("file:///") + fileName, QUrl::TolerantMode));
if(!is_open)
{
qDebug()<<"log file open failed "<<is_open;
return;
}
}
用户选择打开哪个日志文件:
/**
* @brief TaskInfo::openLogFileDialog
* @abstract 打开日志文件夹 用户打开日志
* @param errInfo
*/
void TaskInfo::openLogFileDialog()
{
QString fileDir = getLogFolder();
//打开文件选择对话框
QString dlgTitle="打开日志文件"; //对话框标题
QString filter="HTML files (*.html);;所有文件(*.*)"; //文件过滤器 QString filter="HTML files (*.html)"; //文件过滤器
QString aFileName=QFileDialog::getOpenFileName(nullptr,dlgTitle,fileDir,filter);
if(aFileName == "")
{
qDebug()<<"cancel open log file";
return;
}
bool is_open = QDesktopServices::openUrl(QUrl(QString("file:///") + aFileName, QUrl::TolerantMode));
if(!is_open)
{
qDebug()<<"log file open failed "<<is_open;
return;
}
}
调用函数:
/**
* @brief FileIO::getLastFileName
* 获取最新的文件
* @param filePath
* @return
*/
QString FileIO::getLastFileName(QString &filePath)
{
QDir fileDir(filePath);
QStringList fileList = fileDir.entryList(QDir::Hidden | QDir::Files | QDir::NoDotAndDotDot, QDir::Time);
if(fileList.size())
{
return (filePath + "/" + fileList.first());
}
return "";
}