咳咳!总结了一下我在使用QT文件操作时所用到的,再接再厉!再接再厉!!

1.保存到文件:

QFile file("test.txt");

if (!file.open(QIODevice::WriteOnly);)

{

QMessageBox::warning(NULL, tr("保存文件"),

tr("无法读取文件 %1")

.arg(file.errorString()));

}

QDataStream out(&file);

out.setVersion(QDataStream::Qt_4_3);

/***************************如果保存变量***************************/

QString sName;

Int iAge;

out << sName << iAge;

/************************如果保存容器(如QMap)*******************/

QMap<int, QString> map;

map.insert(0, "name1");

map.insert(1, "name2");

map.insert(2, "name3");

out << map;

/***************************如果保存结构体**************************/

typedef struct student

{

QString name;

Int age;

Int no;

}STUDENT_MESSAGE;

STUDENT_MESSAGE stuMsg;

Out << stuMsg.name << stuMsg.age << stuMsg.no;

/*******************************************************************/

file.close();

2.从文件读取:

QFile file("test.txt");

if (!file.open(QIODevice::ReadWrite))

{

QMessageBox::warning(NULL, tr("读取文件"),

tr("无法读取文件 %1")

.arg(filePro.errorString()));

}

QDataStream in(&file);

in.setVersion(QDataStream::Qt_4_3);

/************************************* 读取变量 *************************************/

QString sName;

Int iAge;

in >> sName >> iAge;

/******************************* 读取容器(如QMap) *******************************/

QMap<int, QString>::const_iterator i = map->constBegin();

QString name1,name2,name3;

while (i != map->constEnd())

{

Switch(i.key())

{

Case 0:name1= i.value();

Case 1:name2= i.value();

Case 2:name3= i.value();

}

++i;

}

/************************************************************************************/

file.close();

3.判断所选路径下文件是否存在 

int MainWindow::treefile( QString filePath)

{

QDir dir(filePath);

if (!dir.exists())

{

return -1;

}

//取到所有的文件和文件名,但是去掉.和..的文件夹(这是QT默认有的)

dir.setFilter(QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot);

//文件夹优先

dir.setSorting(QDir::DirsFirst);

//转化成一个list

QFileInfoList list = dir.entryInfoList();

if(list.size()< 1 )

{

return -1;

}

int i=0;

//递归算法的核心部分

do

{

QFileInfo fileInfo = list.at(i);

QString path = fileInfo.absolutePath();//获取一个绝对路径(不包括文件名)

//如果是文件夹,递归

bool bisDir = fileInfo.isDir();

if(bisDir)

{

treefile(fileInfo.filePath());

}

else

{

if(fileInfo.fileName() == "test.txt") //找到搜索文件(比如你要找一个test.txt文件)

{

//这里做你想做的

}

}

i++;

} while(i < list.size());

}

4.删除指定路径下的文件夹

bool MainWindow::deleteDir(const QString dirName)

{

QDir directory(dirName);

if (!directory.exists())

{

return true;

}

QStringList files = directory.entryList(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);

QList<QString>::iterator f = files.begin();

bool error = false;

for (; f != files.end(); ++f)

{

QString filePath = QDir::convertSeparators(directory.path() + '/' + (*f));

QFileInfo fi(filePath);

if (fi.isFile() || fi.isSymLink())

{

QFile::setPermissions(filePath, QFile::WriteOwner);

if (!QFile::remove(filePath))

{

error = true;

}

}

else if (fi.isDir())

{

if (!deleteDir(filePath));

{

error = true;

}

}

}

if(!directory.rmdir(QDir::convertSeparators(directory.path())))

{

error = true;

}

return !error;

}

http://blog.csdn.net/mingxia_sui/article/details/7682549

Qt中文件操作遇到的(变量,容器,结构体)的更多相关文章

  1. Qt之文件操作 QFile

    原地址:http://blog.csdn.net/liuhongwei123888/article/details/6084761 今天学习QT的文件操作 1.QIODevice直接继承自QObjec ...

  2. 查看Linux下*.a库文件中文件、函数、变量

    查看Linux下*.a库文件中文件.函数.变量等情况在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t xxx.a 2. ...

  3. php中文件操作常用函数有哪些

    php中文件操作常用函数有哪些 一.总结 一句话总结:读写文件函数 判断文件或者目录是否存在函数 创建目录函数 file_exists() mkdir() file_get_content() fil ...

  4. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  5. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

  6. C语言中文件操作

    用两个指针变量来操作字符串. 多维数组在做函数参数的时候,会退化成为一个指针变量,变成一个指向一维数组的数组指针,注意,是一个指针变量. 一维数组在当作函数参数传递的时候,会退化成为一个对应类型的指针 ...

  7. 黑马程序员——C语言基础 变量类型 结构体

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...

  8. 4.QT中进程操作,线程操作

     QT中的线程操作 T19Process.pro SOURCES += \ main.cpp CONFIG += C++11 main.cpp #include <QCoreApplicat ...

  9. 界面编程之QT的文件操作20180729

    /*******************************************************************************************/ 一.QT文件 ...

随机推荐

  1. object-c 内存管理机制的学习

    1.内存的创建和释放 让我们以Object-c世界中最最简单的申请内存方式展开,谈谈关于一个对象的生命周期.首先创建一个对象: //“ClassName”是任何你想写的类名,比如NSString NS ...

  2. The request failed with HTTP status 401: Unauthorized.

    Reporting Service 控件默认由IIS里面的应用程序池标识 里面所定义的用户连接,如果用户没有权限则报以下错误 The request failed with HTTP status 4 ...

  3. Delphi 预编译指令

    <Delphi下深入Windows核心编程>(附录A Delphi编译指令说明)Delphi快速高小的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流, ...

  4. TCP/IP笔记 三.运输层(4)——TCP链接管理与TCP状态机

    1. 建立连接 三次握手 (1)A 的 TCP 向 B 发出连接请求报文段,其首部中的同步比特 SYN 应置为 1,并选择序号 x,表明传送数据时的第一个数据字节的序号是 x. (2)B 的 TCP ...

  5. 算法导论 6-2 d叉堆

    问题: d叉堆性质与二叉堆相似,但其每个非叶子结点有d个孩子: 1) 如何在一个数组中表示一个d叉堆? 2) 包含n个元素的d叉堆的高度是多少? 3) 给出 EXTRACT-MAX在d叉堆的有效实现, ...

  6. Score(规律)

    Score Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submiss ...

  7. Bitmap recycle()

    Bitmap调用recycle? When? Bitmap有一个recycle方法,意思非常easy,回收Bitmap的空间. Q 1: Bitmap是否有调用recycle方法的必要性? A: 嵌入 ...

  8. Ext JS学习第十四天 Ext基础之 Ext.DomHelper

    此文用来记录学习笔记   •我们已经学过了Element这个类,无疑是非常强大的,里面提供了丰富的方法供我们使用,但是Ext为了更加的方便我们去操作DOM元素,特提供了DomHelper这个辅助的工具 ...

  9. 在Windows Server 2008 R2 中架设 SMTP 服务器

    安装SMTP服务器 Step 1 在功能里面勾选SMTP 服务器,一路下一步完成安装 Step 2 在IIS6的SMTP属性里面的访问标签点击连接,然后设置本机可访问. (其实可以不用设置) Step ...

  10. database schema

    数据中有4个Schema无法被删除 ● dbo, 具有db_owner或者db_ddl_admin 的用户,新创建对象默认schema就是dbo ● guest , 用来给guest 用户使用,这个s ...