项目需要保存产测数据到log文件中,且log文件需要根据日期和时间进行区分,因此参考网络上部分前辈们的方法,作如下设计
void MainWindow::creat_log_file(QString file_path, QString file_name)
{
QDir tempDir;
//临时保存程序当前路径
QString currentDir = tempDir.currentPath();
//如果filePath路径不存在,创建它
if(!tempDir.exists(filePath))
{
qDebug()<<QObject::tr("不存在该路径")<<endl;
tempDir.mkpath(filePath);
}
QFile *tempFile = new QFile;
//将程序的执行路径设置到filePath下
tempDir.setCurrent(filePath);
qDebug()<<tempDir.currentPath();
//检查filePath路径下是否存在文件fileName,如果停止操作。
if(tempFile->exists(fileName))
{
qDebug()<<QObject::tr("文件存在");
tempDir.setCurrent(currentDir);
qDebug()<<tempDir.currentPath();
return ;
}
//此时,路径下没有fileName文件,使用下面代码在当前路径下创建文件
tempFile->setFileName(fileName);
if(!tempFile->open(QIODevice::WriteOnly|QIODevice::Text))
{
qDebug()<<QObject::tr("打开失败");
}
tempFile->close();
//将程序当前路径设置为原来的路径
tempDir.setCurrent(currentDir);
qDebug()<<tempDir.currentPath();
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 获取当前日期
QDateTime current_date_time =QDateTime::currentDateTime();
QString current_date =current_date_time.toString("yyyy/MM/dd");
QString fileDir = "./Log/" + current_date;
createFile(fileDir, "log.txt");
return a.exec();
}