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") ...
随机推荐
- c# 日期函数[string.Format----GetDateTimeFormats]格式 .【转帖备查】
DateTime dt = DateTime.Now;Label1.Text = dt.ToString();//2005-11-5 13:21:25Label2.Text = dt.ToFileTi ...
- js jquery中 的数据类型
任何一门语言, buguan 是动态的, 还是像C语言的, 都有严格的 类型 "概念的", 这个是由于 编译器和解释器要求的, 需要的. 所以在是使用像 js, jquey ,ph ...
- thinkphp- 许愿墙-1
控制器的方法, 要显示的模板默认的跟方法名相同. 也可以不同, 但应该 仍然是对应文件夹下的html模板文件: $this->display('其他的模板html文件名, 不用加html扩展名' ...
- Node.SelectNodes
http://www.crifan.com/csharp_under_some_node_search_specific_child_node/ https://msdn.microsoft.com/ ...
- HTML5音乐播放器(最新升级改造加强版)
最近么,单位里面么老不顺心的,公司一直催要程序员要PHP,然后本宅好不容易推荐了一个,我日嘞,最后待遇变成1.3,吾师最后也同意1.3W,然后还说要考虑... 尼玛,4年多5年不到一点的工作经验,前端 ...
- ASP.NET 大文件下载的实现思路及代码
文件下载是一个网站最基本的功能,ASP.NET网站的文件下载功能实现也很简单,但是如果遇到大文件的下载而不做特殊处理的话,那将会出现不可预料的后果.本文就基于ASP.NET提供大文件下载的实现思路及代 ...
- mongodb_修改器($inc/$set/$unset/$push/$pop/upsert......)
主从复制:http://blog.csdn.net/drifterj/article/details/7833883 对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能 ...
- Oracle添加数据报文字与格式字符串不匹配错误
今天在学习Oracle时碰到一个错:文字与格式字符串不匹配. 我在Oracle数据库中创建了一张表: --创建员工表employee create table employee ( empon ) n ...
- H5案例分享:html5重力感应事件
html5重力感应事件 一.手机重力感应图形分析 1.设备围绕z轴的旋转角度为α,α角度的取值范围在[0,360). 设备在初始位置,与地球(XYZ)和身体(XYZ)某个位置对齐. 设备围绕z轴的旋转 ...
- 解决IE6不支持position:fixed的bug
/*完整代码 */ /* 除IE6浏览器的通用方法 */ .ie6fixedTL { position: fixed; left:; top:; } .ie6fixedBR { position: f ...