QT_QDir目录

QT_QDir用于处理目录,如canonicalPath显示规范化路径,currentPath获取当前路径,homePath得到家目录,rootPath表示根目录,tempPath提供临时路径。使用setPath()和path()设置和获取目录路径,QDir(String)初始化目录对象。entryList()列出目录中的所有条目,包括文件和子目录。创建文件或目录时,确保路径存在,mkdir只创建最后一个目录(需所有父目录已存在),而mkpath会递归创建所有父目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

canonicalPath

比如, 当前目录是: D:/a/b

QDir dir( "./../.")

dir.canonicalPath()为: D:/a

currentPath

(exe)所在的位置, 等于 (pro文件里, DESTDIR的值)

homePath

C:/User/hp

rootPath

C:/

tempPath

D:/System_folders/system_cache

setPath(), path(), QDir( QString)

QDir d( "D:/Supimo/temp");
d.setPath( "D:/Supimo/temp")
d.path() == "D:/Supimo/temp"

这个目录对象, 就指向 这个"D:/Supimo/temp"目录

entryList()

返回该目录下, 所有的 (条目entry) 返回值是QStringList

entr

### QDirQT 中用于打开目录的用法 `QDir` 是 Qt 提供的一个类,主要用于处理文件夹路径以及执行与目录相关的操作。通过 `QDir` 可以轻松实现诸如读取目录内容、创建新目录、更改当前工作目录等功能。 以下是关于如何使用 `QDir` 来打开并操作目录的具体说明: #### 1. 获取指定路径下的目录和文件列表 可以利用 `entryList()` 方法获取某个目录下所有的文件和子目录名称。此方法接受两个参数:过滤器 (`QDir::Filters`) 和排序标志 (`QDir::SortFlags`)。 ```cpp #include <QDir> #include <QStringList> QString path = "/home/user/Documents"; // 替换为目标路径 QDir dir(path); if (dir.exists()) { QStringList entries = dir.entryList(QDir::NoDotAndDotDot | QDir::AllEntries, QDir::Name); foreach (const QString &entry, entries) { qDebug() << entry; } } else { qDebug() << "Directory does not exist."; } ``` 上述代码片段展示了如何列出目标路径 `/home/user/Documents` 下的所有条目(不包括`.`和`..`),并将它们打印到控制台[^2]。 #### 2. 设置新的工作目录 如果需要改变程序运行时的工作目录,则可以通过调用 `setPath()` 或者直接实例化一个新的 `QDir` 对象完成这一需求。 ```cpp // 方式一:修改现有对象的工作目录 QDir currentDir; currentDir.setPath("/new/path"); // 方式二:重新初始化一个全新的QDir对象 QDir newWorkingDir("/another/new/path"); qDebug() << "New working directory:" << newWorkingDir.absolutePath(); ``` 注意,在实际项目中可能还需要验证所设置的目标路径是否存在或者是否有权限访问等问题[^3]。 #### 3. 访问特殊位置的快捷方式 除了手动输入具体地址外,还可以借助于一些预定义好的静态成员函数快速定位至某些特定区域,比如用户的家目录(`~`)或者是系统的临时存储空间等等。 | 静态方法 | 描述 | |------------------|-------------------------------------------------------------| | `QDir::current()` | 返回表示当前进程所在工作区的对象 | | `QDir::currentPath()` | 返回字符串形式表达出来的当前位置 | | `QDir::home()` | 用户个人资料所在的顶层文件夹 | | `QDir::homePath()` | 同上但只给出纯文本版的结果 | | `QDir::root()` | 整个磁盘结构最顶端的那个节点 | | `QDir::rootPath()` | 类似地也仅返回对应的字符串 | | `QDir::temp()` | 应用程序可用来保存短期数据的地方 | | `QDir::tempPath()` | 上述地点的实际物理位置 | 下面的例子演示了怎样取得这些重要场所的信息: ```cpp qDebug() << "Current Path:" << QDir::currentPath(); qDebug() << "Home Directory:" << QDir::homePath(); qDebug() << "Root Directory:" << QDir::rootPath(); qDebug() << "Temporary Files Location:" << QDir::tempPath(); ``` 以上每一条语句都会向标准输出流发送相应的调试消息[^4]。 --- ### 总结 综上所述,`QDir` 不仅为开发者提供了便捷的方式来管理和查询本地计算机上的资源集合;而且其丰富的接口设计使得即使面对复杂的跨平台应用场景也能游刃有余地解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值