QT(04)文件管理

目录操作 QDir、QFileInfo Linux下的目录     Windows下的目录

   QDir.currentPath();  返回当前路径      返回当前目录

   QDir.homePath(); 返回用户目录      C:/Users/Administrator

   QDir.rootPath();  返回根目录       C:/

   QDir.tempPath();  返回临时目录     C:/Users/Administrator/AppData/Local/Temp

  切换目录

   QDir.cd("path");

QDir mDir("C:/Qt/workspace/lesson3");
foreach (QFileInfo mItem, mDir.entryInfoList())
{
    if(mItem.isDir())
        qDebug() <<" Dir "<< mItem.filePath();
    else if(mItem.isFile())
        qDebug() <<" File "<< mItem.filePath();
}
文件夹遍历
QDir mDir(QDir::current());
QStringList filters;
filters<<"*.cpp"<<"*.h"<<"*.txt"<<".pro";
mDir.setNameFilters(filters);
qDebug()<<mDir.entryList(filters, QDir::Files);    //开始过滤
文件过滤器,只看指定类型的文件

文件操作 QFile QDir、QFileInfo

  读写的方式打开文件   file.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Append )

  写入一行数据 file.write("hello world ");

  QFile->seek(offset); 文件偏移值,默认是0  但是QIODevice::Append会把offset偏移到文件末尾

  读取一行数据 file.readLine(); 如果是读写的方式打开 ,读的时候要确保文件的 seek(offset) 是0 ,再利用 while( ! file.atEnd()) 把所有行都读出来

QFile file("test.txt");
if( ! file.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Append  ))
{
    qDebug()<<"open fail";
}
file.write("hello world
");
file.seek(0);
while( ! file.atEnd())
{
    qDebug()<<file.readLine();
}
file.close();
test

  读取全部 file.readAll(); 一样要确保文件的 seek(offset) 是0  , 还有很多读写的接口函数

原文地址:https://www.cnblogs.com/yxnrh/p/13365256.html