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 文件处理的更多相关文章

  1. Qt 文件处理(readLine可以读取char[],并且有qSetFieldWidth qSetPadChar 等全局函数)

    Qt 文件处理 Qt提供了QFile类来进行文件处理,为了更方便地处理文本文件或二进制文件,Qt还提了QTextStream类和QDataStream类,处理临时文件可以使用QTemporaryFil ...

  2. Qt文件发布

    1.打开Qt文件夹下的,其他版本可能为Qt (版本号)for Desktop cmd 2.将Release文件下的exe文件复制到别的文件夹,我这里为G:\Qt\QT_project\ff 3.在Qt ...

  3. QT 文件对话框(QFileDialog)

    1.选择文件(上传.打开...) QString QFileDialog::getOpenFileName( QWidget *parent = , //parent,用于指定父组件.注意,很多Qt组 ...

  4. QT 文件操作

    QT提供了QFile类用于文件读写 QFile可以读写文本文件,也可以读写二进制文件 #include "widget.h" #include <QGridLayout> ...

  5. Qt文件信息获取之QFileInfo

    在Qt中为文件的操作和信息获取提供了许多方便的类,常用的有QDir,QFile,QFileInfo以及QFileDialog,在本文中主要介绍用于获取关于文件信息的QFileInfo类. QFileI ...

  6. Qt 文件搜索(写入文本文件)

    代码无意间在网上找到,下载回来后改了几个格式,编译后经测试可以正常使用,这个个文件搜索的很好的例子,有两种搜索方式:一种是按文件名作为关键字进行搜索,一种是以文档中所包含的关键字进行搜索,贴两张图先: ...

  7. Qt 文件监视器 QFileSystemWatcher

    之前有过对Qt的QFile以Text纯文本方式进行读取时的学习,这两天由于实时需要又对QFileSystemWatcher(这个类是干什么用的)进行了学习,发现也是问题很让人头疼. 我想监视一个文件夹 ...

  8. Qt5:Qt文件操作类 QFile

    在QT中,操作文件一般不使用C++提供的文件操作类 , 因为操作文件的时候,要用到C++提供的 string 类,而在QT中使用的是Qt自己实现的一个string类 QString .在Qt中使用C+ ...

  9. Qt 文件的操作

    文件操作是应用程序必不可少的部分.Qt 作为一个通用开发库,提供了跨平台的文件操作能力.从本章开始,我们来了解下 Qt 的文件以及输入输出的功能,也就是 I/O 系统. Qt 通过QIODevice提 ...

  10. Qt: 文件、文件夹的操作;

    Qt没有提供单独的函数来对文件.文件夹进行操作, 但是提供了两个类: QFile, QDir; 1.文件操作 ) 文件是否存在: QFile file("D:/test.jpg") ...

随机推荐

  1. CSS3的REM设置字体大小

    在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说百分比方便,以至于出现了CSS Font-Size: em vs. px v ...

  2. ggplot2 上篇

    title: "ggplot2 上篇" author: "li_volleyball" date: "2016年4月16日" output: ...

  3. nyoj 4 ASCII码排序 java

    java输入字符:1.String s=sc.next(); 2.char a=s.charAt(0); 注意:package   java 中提交不能带package java代码: import ...

  4. 定时任务-在spring中配置quartz

    使用的版本Spring4.04+Quartz2.2.3,关于jar包自行下载. 详细需要以下几个步骤来完成: 1.  定义要执行的Job类 2.  定义quartz的配置文件applicationCo ...

  5. 【C语言入门教程】4.7 指针的地址分配 - mallocl(), free()

    指针变量可指向任何类型的变量,在处理过程中,指针变量指向的变量通过传递变量的地址来实现,指针变量的取值是内存的地址,这个地址应当是安全的,不可以是随意的.否则,写入内存单元的值将使得已存放的数据或程序 ...

  6. Ubuntu 14 如何打开 .chm格式文档?

    好多手册是.chm格式,Ubuntu是需要安装第三方软件才能打开.chm格式文档,操作方式如下: 到“软件中心” -> 搜索“xchm”,并安装 -> 右键某个.chm文档,选择“属性” ...

  7. PHP Socket实现websocket(四)Select函数

    int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); /* ...

  8. CSS3.0盒模型display:box;的使用

    CSS3.0盒模型display:-webkit-box;的使用 box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂 ...

  9. word20161128

    1. accordion 英[əˈkɔ:diən] 美[əˈkɔ:rdiən] n.手风琴; adj.可折叠的; [例句]Where some people learned to play the a ...

  10. Sqli-LABS通关笔录-9[延时注入]

    通过这个关卡 1.更快的掌握到了如何判断是否是延时注入 无论咋输入,都不行.当payload为: http://127.0.0.1/sql/Less-9/index.php?id=1' and sle ...