Qt 文件处理
1.删除目录下所有的文件
void deleteAllFiles(const QString& fileDir)
{ QDir dir(fileDir);
if(!dir.exists())
{
return;
} QFileInfoList fileInfofList=dir.entryInfoList(QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot | QDir::NoSymLinks | QDir::AllDirs); foreach (QFileInfo fileInfo, fileInfofList)
{
if(fileInfo.isDir())
{
deleteAllFiles(fileInfo.absoluteFilePath());
}
else if(fileInfo.isFile())
{
QFile file(fileInfo.absoluteFilePath());
file.remove();
} } QDir tempDir;
tempDir.rmdir(fileDir);//删除空的目录
}
删除超过多长时间的旧文件。toTime_t() 秒
const int OVERTIME=***;
void MainWindow::deleteOldFile(QString fileDir)
{
QDir dir(fileDir);
if(dir.exists())
{
dir.setFilter(QDir::Files | QDir::NoSymLinks);
QDateTime nowDateTime = QDateTime::currentDateTime();
QFileInfoList list = dir.entryInfoList();
for (int i = ; i < list.size(); ++i)
{
QFileInfo fileInfo = list.at(i);
//秒
int passTime=nowDateTime.toTime_t()-fileInfo.created().toTime_t();
if(passTime>OVERTIME)
{
QFile file(fileInfo.absoluteFilePath());
file.remove();
} }
}
}
QString fileDir="/home/likewei/公共的/dispatch_log";
deleteOldFile(fileDir);
2.读文件
QFile file(yamlFile);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
log::d("yamle open file fail!");
return false;
} QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine();
log::d(line);
}
file.close ();
2.QWidgetList导出excel
void ReportDlg::onExport()
{ QString file_path = QFileDialog::getSaveFileName(this,"Excel file",qApp->applicationDirPath(),
tr("Files (*.csv)")); if(file_path.isEmpty())
{
return;
} QFile file(file_path);
if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug()<< "Cannot open file for writing"; return;
} QTextStream out(&file);
int row_count=tw->rowCount();
int col_count=tw->columnCount();
QString tw_value; for(int h=;h<col_count;h++)
{ tw_value=tw->horizontalHeaderItem(h)->text();
out<<tw_value<<",";
}
out<<"\n";
for(int i=;i<row_count;i++)
{ for(int j=;j<col_count;j++)
{ tw_value=tw->item(i,j)->text();
out<<tw_value<<",";
}
out<<"\n";
} file.close(); }
3.记录错误信息,每天用新的文件记录信息,以防止记录的信息太多。
void MainWindow::log(QString msg)
{ QString fileName=QDateTime::currentDateTime ().toString ("yyyy_MM_dd")+".log";
QString currentDir= QCoreApplication::applicationDirPath()+"/logs"; QDir dir;
if(!dir.exists (currentDir))
{
dir.mkpath (currentDir);
}
fileName=currentDir+"/"+fileName; QFile file(fileName);
if(!file.exists (fileName))
{
file.setFileName (fileName);
}
file.open(QIODevice::WriteOnly|QFile::Append);
QTextStream in(&file);
in<<QDateTime::currentDateTime ().toString ("[hh:mm:ss:zzz]")+" "+msg+"\r\n";
file.close (); }
4.选择文件对话框
QString defaultDir=QCoreApplication::applicationDirPath()+"/data";
QString fileName= QFileDialog::getOpenFileName(
this,
"Import File",
defaultDir,
"file (*.txt *.bin);;all files (*.*)");
if(!fileName.isEmpty())
{
emit sigImportFile(fileName);
}
Qt 文件处理的更多相关文章
- Qt 文件处理(readLine可以读取char[],并且有qSetFieldWidth qSetPadChar 等全局函数)
Qt 文件处理 Qt提供了QFile类来进行文件处理,为了更方便地处理文本文件或二进制文件,Qt还提了QTextStream类和QDataStream类,处理临时文件可以使用QTemporaryFil ...
- Qt文件发布
1.打开Qt文件夹下的,其他版本可能为Qt (版本号)for Desktop cmd 2.将Release文件下的exe文件复制到别的文件夹,我这里为G:\Qt\QT_project\ff 3.在Qt ...
- QT 文件对话框(QFileDialog)
1.选择文件(上传.打开...) QString QFileDialog::getOpenFileName( QWidget *parent = , //parent,用于指定父组件.注意,很多Qt组 ...
- QT 文件操作
QT提供了QFile类用于文件读写 QFile可以读写文本文件,也可以读写二进制文件 #include "widget.h" #include <QGridLayout> ...
- Qt文件信息获取之QFileInfo
在Qt中为文件的操作和信息获取提供了许多方便的类,常用的有QDir,QFile,QFileInfo以及QFileDialog,在本文中主要介绍用于获取关于文件信息的QFileInfo类. QFileI ...
- Qt 文件搜索(写入文本文件)
代码无意间在网上找到,下载回来后改了几个格式,编译后经测试可以正常使用,这个个文件搜索的很好的例子,有两种搜索方式:一种是按文件名作为关键字进行搜索,一种是以文档中所包含的关键字进行搜索,贴两张图先: ...
- Qt 文件监视器 QFileSystemWatcher
之前有过对Qt的QFile以Text纯文本方式进行读取时的学习,这两天由于实时需要又对QFileSystemWatcher(这个类是干什么用的)进行了学习,发现也是问题很让人头疼. 我想监视一个文件夹 ...
- Qt5:Qt文件操作类 QFile
在QT中,操作文件一般不使用C++提供的文件操作类 , 因为操作文件的时候,要用到C++提供的 string 类,而在QT中使用的是Qt自己实现的一个string类 QString .在Qt中使用C+ ...
- Qt 文件的操作
文件操作是应用程序必不可少的部分.Qt 作为一个通用开发库,提供了跨平台的文件操作能力.从本章开始,我们来了解下 Qt 的文件以及输入输出的功能,也就是 I/O 系统. Qt 通过QIODevice提 ...
- Qt: 文件、文件夹的操作;
Qt没有提供单独的函数来对文件.文件夹进行操作, 但是提供了两个类: QFile, QDir; 1.文件操作 ) 文件是否存在: QFile file("D:/test.jpg") ...
随机推荐
- 密钥文件snk
1.(what)是什么? 由一个程序集的标识组成并通过公钥和数字签名(针对该程序集生成)加强的名称,其中的标识包括程序集的简单文 本名称.版本号和区域性信息(如果提供的话). 2.(why)为什么 ...
- CentOs图形界面的开启与关闭
1.1 shell中运行 init 3 进入文本模式,同时会关闭相关的服务(Xserver 肯定关闭) 1.2 Alt+Ctrl+F1~F6到字符界面,root登陆,ps aux|grep /usr ...
- vim ctags使用方法
一.用好系统自带软件ctags 大部分的unix系统都有ctags软件,它能跟vim很好地合作. 用途: 生成c语言的标签文件,实现相关c文件之间的跳转. 用法: 1.生成标签文件 ...
- Linux服务器管理: 系统管理:系统资源查看
vmstat 命令: 查看或监控系统资源 [root@localhostA1 ~]# vmstat procs -----------memory---------- ---swap-- -----i ...
- Memcached目录
Memcached 简介.安装和基本使用 Memcached基础知识 理解Memcached的分布式 Memcached存储命令 - set Memcached存储命令 - add Memcached ...
- FZU2169 shadow题解
http://acm.fzu.edu.cn/problem.php?pid=2169 Problem Description YL 是shadow国的国王,shadow国有N个城市.为了节省开支,sh ...
- 阿里云9折推荐码:0LGVW2
阿里云9折推荐码:0LGVW2,第一次购买云服务器或云数据库可享受原价9折优惠.
- Git工作流总结
引用自:https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md 说明: 个人在学习Git工作流的过程中,从原有的 S ...
- Swift2.1 语法指南——错误处理
原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...
- C# 读写App.config
Jul142013 [C#] 读写App.config配置文件的方法 作者:xieyc 发布:2013-07-14 17:29 字符数:3433 分类:编程 阅读: 39,139 次 ...