qt QDir详解

1、概述

QDir是Qt框架中的一个核心类,它提供了对文件系统目录的操作接口。Qt是一个跨平台的应用程序开发框架,广泛用于开发桌面、移动和嵌入式设备上的应用程序。QDir类使得开发者能够方便地在不同操作系统上处理目录和文件,如进行目录遍历、文件查找、创建、删除、移动等操作。

2、重要方法

QDir类提供了多种方法来操作目录和文件,以下是一些重要的方法:

  • 目录操作

    • mkdir() / mkpath():创建单级或多级目录。
    • rmdir():删除空目录。
    • removeRecursively():删除包含文件和子目录的非空目录。
    • rename():重命名或移动目录。
    • exists():检查目录是否存在。
    • isReadable() / isWritable() / isAbsolute():检查目录的各种属性。
  • 文件操作

    • entryList() / entryInfoList():获取目录内文件和子目录列表,可设置过滤条件和排序方式。
    • findFiles() / findChildren():查找特定文件或子目录。
    • remove():删除文件。
    • rename():重命名文件。
  • 路径处理

    • currentPath():获取当前工作目录。
    • setCurrent():设置当前工作目录。
    • absolutePath():返回绝对路径。
    • canonicalPath():返回规范化路径。
    • dirName():获取当前目录名。
    • setPath():设置QDir对象的路径。
    • path():获取QDir对象的路径。
  • 过滤和排序

    • setNameFilters():设置文件名过滤规则。
    • setSorting():设置排序方式。
  • 链接和符号链接

    • isSymLink():检查是否为符号链接。
    • symLinkTarget():获取符号链接的目标路径。
3、重要信号

关于QDir类的重要信号,需要注意的是,QDir本身并不直接发出信号。然而,在Qt框架中,与文件和目录操作相关的类(如QFileSystemWatcher)可以发出信号来监控文件和目录的变化。例如,QFileSystemWatcher可以监控指定目录和文件的状态,当目录或文件发生改变时(如内容变化、重命名、删除等),将触发相应的信号。开发者可以通过信号与槽的机制捕获这些信号并作出反应。

但请注意,由于QDir本身不直接发出信号,因此在此部分中无法列出QDir的特定信号。如果需要监控文件和目录的变化,请考虑使用QFileSystemWatcher等类。

#include <QDir>  
#include <QFileInfo>  
#include <QTextStream>  
#include <QStandardPaths>  
#include <QFile>  
#include <QDebug>  int main(int argc, char *argv[]) {  // 获取并打印当前工作目录  QDir currentDir = QDir::current();  qDebug() << "Current directory: " << currentDir.path();  // 创建多级目录  QString newDirPath = "/path/to/new/directory";  if (QDir().mkpath(newDirPath)) {  qDebug() << "Directory created: " << newDirPath;  } else {  qDebug() << "Failed to create directory!";  }  // 列出指定目录下的所有文件和子目录(不递归)  QDir dir("/path/to/some/directory");  QStringList entries = dir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);  for (const QString &entry : entries) {  qDebug() << entry;  }  // 按大小排序列出目录下的所有文件,并显示详细信息  QDir dirWithDetails("/path/to/some/directory");  dirWithDetails.setSorting(QDir::Size | QDir::Reversed);  QFileInfoList fileInfoList = dirWithDetails.entryInfoList(QDir::Files);  for (const QFileInfo &info : fileInfoList) {  qDebug() << "Name: " << info.fileName();  qDebug() << "Size: " << info.size();  qDebug() << "IsDir: " << info.isDir();  qDebug() << "Last modified: " << info.lastModified().toString();  qDebug() << "";  }  return 0;  
}

觉得有帮助的话,打赏一下呗。。

           

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/3173.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Jwt加解密

概述 记录jwt加解密的demo。 JSON Web Token (JWT) 是一种开放标准 (RFC 7519)&#xff0c;用于在网络应用环境间安全地传输信息。JWT 通常用于身份验证和信息交换&#xff0c;因为它可以被签名和加密&#xff0c;确保数据的完整性和隐私性。 JWT 的基本结构 JWT 由三部分组…

鸥柏(OBOO)户外触摸广告屏科技创新 高速服务区收费站案例

鸥柏&#xff0c;作为户外液晶显示技术的品牌高端领先者&#xff0c;其新产品鸥柏户外触摸屏在高速服务区收费站入口处得到了真实且广泛的应用。OBOO鸥柏户外广告机能够存储和展示海量信息&#xff0c;包括新闻、政策、天气预报、实时路况等&#xff0c;为过往司乘人员提供丰富…

ASED6015SH-ASEMI中低压MOS管ASED6015SH

ASED6015SH-ASEMI中低压MOS管ASED6015SH 型号&#xff1a;ASED6015SH 品牌&#xff1a;ASEMI 导通内阻&#xff1a;90mΩ 启动电压&#xff1a;2V-4V 最大漏源电流&#xff08;Id&#xff09;&#xff1a;19A 漏源击穿电压&#xff08;VRM&#xff09;&#xff1a;150V …

`掌握Python-PPTX,让PPt制作变得轻而易举!`

文章目录 掌握Python-PPTX&#xff0c;让PPT制作变得轻而易举&#xff01;背景介绍python-pptx 是什么&#xff1f;如何安装 python-pptx&#xff1f;简单库函数使用方法应用场景常见Bug及解决方案总结 掌握Python-PPTX&#xff0c;让PPT制作变得轻而易举&#xff01; 背景介绍…

linux的用户账号与权限管理

一、用户账号 root 和zhang 表示当前的登录用户test1 表示当前的主机名/home&#xff1a; 表示当前所在的目录为/home~&#xff1a; 表示当前所在的目录为~#&#xff1a; 表示当前用户是管理员$&#xff1a; 表示当前用户是普通用户 1.切换用户 su - 用户名 &#xff08;完全切…

Qt项目实战:银行利息(贷款)计算器

目录 一.ui设计 二.初始化表单 三. 存款计算 四.贷款计算 五.效果 六.代码 1.h 2.cpp 一.ui设计 二.初始化表单 获取当前时间&#xff0c;并将开始日期设置为当前日期&#xff0c;将结束日期设置为当前日期加一年 三. 存款计算 1.从文本框获取当前资金、利率、定期期…

无人机高山景区物资吊运技术及前景分析

随着科技的飞速发展&#xff0c;无人机技术已经逐渐渗透到各个领域&#xff0c;并在其中展现出巨大的潜力和应用前景。在高山景区物资运输方面&#xff0c;无人机技术的引入不仅解决了传统运输方式中人力成本高、效率低下的问题&#xff0c;还极大地提升了运输的安全性和灵活性…

就是这个样的粗爆,手搓一个计算器:数线计算器

作为程序员&#xff0c;没有合适的工具&#xff0c;就得手搓一个&#xff0c;PC端&#xff0c;移动端均可适用。废话不多说&#xff0c;直接上代码。 HTML: <div class"calculator"><div class"input-group"><label for"a">…

NSET or MSET算法--原理解析

1.背景 NSET/MSET是一种非线性的多元预测诊断技术&#xff0c;广泛应用于系统状态估计、故障诊断和预测等领域&#xff1b;相比于传统的线性模型和方法&#xff0c;NSET/MSET能够更好地处理非线性系统&#xff0c;并提供更准确的预测和诊断能力。在早期&#xff0c;MSET融合了…

NAS端最强音乐库,多平台服务支持。海康存储部署『Navidrome』

NAS端最强音乐库&#xff0c;多平台服务支持。海康存储部署『Navidrome』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 对于我们NAS用户&#xff0c;我们总是喜欢将自己喜欢的音乐资源通过下载的方式保存在本地&#xff0c;不过海康存储目前对因音乐的支持和管理实在过于薄弱&am…

Vue2+3

Day1 创建Vue实例 准备容器 引包 —— 开发版本 创建Vue实例 —— new Vue() 指定配置项 el 和 data > 渲染数据 el指定挂载点&#xff0c;指定控制的是哪个盒子 data提供数据 <!DOCTYPE html> <html lang"en"> <head><meta charset&qu…

AWTK-HarmonyOS NEXT 发布

AWTK 全称为 Toolkit AnyWhere&#xff0c;是 ZLG 倾心打造的一套基于 C 语言开发的 GUI 框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎&#xff0c;支持跨平台同步开发&#xff0c;一次编程&#xff0c;到处编译&#xff0c;跨平台使…

新闻稿件管理:SpringBoot框架实战指南

3系统分析 3.1可行性分析 通过对本新闻稿件管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本新闻稿件管理系统采用SSM框架&#xff0c;JAVA作为开发语…

太炸裂了,Ollama跑本地模型已成为历史,现在都在使用这个工具,而且还能集成本地知识库

AI的发展速度真是超出我们的想象&#xff0c;遥想几个月前&#xff0c;我还在使用Ollama跑本地大模型&#xff0c;最近有另一款可以跑本地大模型的工具迅速崛起&#xff0c;在GitHub上已有70.3K Stars&#xff0c;相信不久就会超越Ollama&#xff0c;除了可以本地运行大模型之外…

在Vue和OpenLayers中使用移动传感器实现飞机航线飞行模拟

项目实现的核心代码 项目概述 该项目的目标是使用Vue.js作为前端框架&#xff0c;结合OpenLayers用于地图显示&#xff0c;实时获取来自手机传感器的数据&#xff08;如经纬度、高度、速度&#xff09;来模拟飞机在地图上的飞行轨迹。整体架构如下&#xff1a; Vue.js 用于构建…

Proteus中单片机IO口外接LED输出低电平时,引脚却一直保持高电平的问题(已解决)

文章目录 前言解决方法后记 前言 一个排阻接八个 LED&#xff0c;方便又省事&#xff0c;但出现了P1端口输出低电平后&#xff0c;仿真引脚却一直显示红色保持高电平不变&#xff0c;用电压表测量显示 2V 左右。 这是仿真的问题&#xff0c;在用开发板时是不会遇到的&#xff…

神经网络进行波士顿房价预测

前言 前一阵学校有五一数模节校赛&#xff0c;和朋友一起参加做B题&#xff0c;波士顿房价预测&#xff0c;算是第一次自己动手实现一个简单的小网络吧&#xff0c;虽然很简单&#xff0c;但还是想记录一下。 题目介绍 波士顿住房数据由哈里森和鲁宾菲尔德于1978年Harrison …

一分钟讲透聚合SDK的工作原理

聚合 SDK 广告是指通过整合多个广告 SDK&#xff08;软件开发工具包&#xff09;&#xff0c;将来自不同广告平台和渠道的广告资源集中管理和调配&#xff0c;并在应用或平台中展示和投放的一种广告模式。 使用聚合 SDK 可以让开发者或广告运营者更方便地接入多种广告源&#…

Visual Studio | 配置管理

文章目录 一、配置管理1、项目属性1.1、常规1.2、VC 目录1.3、C/C -> 常规1.4、C/C -> 预处理器1.5、C/C -> 预编译头1.6、连接器 -> 常规1.7、连接器 -> 输入 2、编辑2.1、显示空格或tab符 一、配置管理 1、项目属性 1.1、常规 字段功能目标平台版本用于生成…

yolov8涨点系列之增加检测头

文章目录 检测头对于目标检测的作用特征转换与信息提取多尺度目标适应预测与定位损失计算与模型优化 YOLOv8的检测头介绍结构组成特征提取层上采样层特征融合层检测层 工作原理锚点机制优化策略自适应空间特征融合&#xff08;ASFF&#xff09;焦点损失&#xff08;Focal Loss&…