最近在導出設備運行日誌時,爲避免每次導出的日誌文件名相同,需要把最新日誌文件加上當前時間保存。實現方式非常簡單:
QString fileName = "/dev/shm/XXX.log";
QFile file(fileName);
QFileInfo fileInfo(fileName);
QString dstPath = "/mnt/udisk/";
dstPath += fileInfo.fileName();
QString ctrlCurTime = “09:40:30”;
QString dstFileName = ctrlCurTime + QString("_") + fileInfo.fileName();
dstFileName =QString("/mnt/udisk/")+dstFileName;
bool renameOK = QFile::rename(QString(dstPath),QString(dstFileName));
上面這段代碼執行完後總是failed,另存爲不成功,本人總是糾結在找代碼裏面的原因,後來直接用命令行另存爲的時候發現系統不識別“09:40:30-XXX.log”這種文件命名格式,後來把時間中的‘:’改成‘-’或者‘_’就OK。