Qt目录操作

一、目录操作

主要用到两个类:QDir,QFileInfo

1.1 QDir

QDir 类具有存取目录结构和内容的能力,使用它可以操作目录、存取目录或文件信息、操作底层文件 系统,而且还可以存取 Qt 的资源文件。

判断目录是否存在可以使用 exists(),目录的属性可以使用 isReadable()、isAbsolute ()、 isRelative() 和 isRoot()来获取 。 目录下有很多条目,包括文件、目录和符号连接,总的条目数可以使用 count()来 统计。 entryList()返回目录下所有条目组成的字符串链表 。 文件可以使用 remove()函数删除,删除目 录用 rmdir() ,改名用rename()。

一般使用Filters对目录下的文件进行过滤。

1.2、QFileInfo

QFilelnfo 类提供了与系统无关的文件信息,包括文件的名称、在文件系统中的位置(路径)、文件的 访问权限以及是否是一个目录或者符号链接等 。 QFilelnfo也可以获取文件的大小和最近一次修改/读 取的时间,还可以获取 Qt 资源的相关信息 。 QFilelnfo 指向的文件可以在 QFileinfo 对象构建时设置,或者以后使用 setFile()来设置。可以使用以 exists()来查看文件是否存在,使用 size ()获取文件的大小。

1.3、判断文件夹是否存在

    QDir dir("D:/game");    
    qDebug()<<dir.exists();//该路径文件存不存在,不存在返回假

1.4、创建目录

QDir dir("D:/test");
if(!dir.exists())
{
	dir.mkdir("D:/test");
    qDebug()<<"创建了新的文件夹";
}
else
{
    qDebug()<<"文件夹存在";
}

1.5、获取常用目录

	  QDir dir;
      qDebug()<<dir.current();  
      qDebug()<<dir.currentPath();  //相对路径的起始位置
      qDebug()<<dir.homePath();
      qDebug()<<dir.tempPath();
      qDebug()<<dir.rootPath(); //根目录

1.6、切换路径

    qDebug()<<dir.dirName();//当前文件夹的名字
    qDebug()<<dir.absolutePath();//当前文件夹的绝对路径
    dir.cd("C:/");//切换到C盘下
    qDebug()<<dir.absolutePath();

    dir.rmdir("D:/test");   //删除文件夹,,remove:文件的删除

1.7、遍历文件

QDir dir("D:/test");
foreach(QFileInfo item,dir.entryInfoList()) //遍历文件夹里面的所有文件夹和文件
    {
        if(item.isDir())
        {
            qDebug()<<"文件夹"<<item.filePath();	//fileName只有名字
        }
        else if (item.isFile())
        {
            qDebug()<<"文件:"<<item.filePath();
        }
    }

1.8、文件过滤

    QStringList listters;   //过滤条件
    listters<<"*.txt"<<"*.rar"; //设置过滤条件
    dir.setNameFilters(listters);	//过滤掉指定名称的文件
    qDebug()<<dir.entryList(listters,QDir::Files);

文章转自博客园(宣哲):qt目录操作 - 宣哲 - 博客园

本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓ 

猜你喜欢

转载自blog.csdn.net/QtCompany/article/details/132119167