winnt选择引导驱动器


一、描述

QDir 是 Qt 提供的一个用于操作文件路径名、访问有关路径和文件信息的工具,同时也能操作底层文件系统。它使用“/”作为通用目录分隔符,可以处理相对或绝对路径指向文件。

绝对路径以目录分隔符开头(在 Windows 下可选地以驱动器规范开头)。相对路径则以目录名或文件名开头,指定相对于当前目录的路径。

在 Windows 上,当用于访问文件时,上述示例中的第二个绝对路径 "C:/Documents and Settings" 将被转换为 C 盘下的 "Documents and Settings" 目录。

二、类型成员

1. 枚举 QDir::Filter:描述 QDir 可用的过滤选项,用于过滤 entryList() 和 entryInfoList() 的结果。过滤器值通过按位 OR 运算符组合以下值来指定:

- Dirs:列出与过滤器匹配的目录。

- AllDirs:列出所有目录。

- Files:列出文件。

- Drives:列出磁盘驱动器(在 Unix 下被忽略)。

- NoSymLinks:不列出符号链接(被不支持符号链接的操作系统忽略)。

- 其他值如 NoDotAndDotDot、NoDot、NoDotDot等表示不列出特定的条目。

- AllEntries:列出目录、文件、驱动器和符号链接。

- 还有其他过滤器如 Readable、Writable、Executable 等是与文件权限相关的过滤器。

- CaseSensitive:过滤器应区分大小写。

2. 枚举 QDir::SortFlag:描述 QDir 可用的排序选项,用于 entryList() 和 entryInfoList() 的排序。排序值由以下值通过 OR 运算指定:

- Name:按名称排序。

- Size:按文件大小排序。

- Type:按文件类型(扩展名)排序。

- Unsorted:不排序。

- 其他值如 NoSort、DirsFirst、DirsLast、Reversed、IgnoreCase、LocaleAware等表示不同的排序方式。

三、免费学习 C++ Qt 开发教程视频,请点击下方链接领取学习资料:[C/C++项目实战/Qt5 学习视频教程](链接已隐藏,请前往相关平台搜索)

三、成员函数介绍

静态成员函数:

1. QString cleanPath(const QString &path):返回路径标准化的结果,删除多余的分隔符,并尽可能解析“.”和“..”。

2. QDir current():返回应用程序的当前目录,确保 path() 与 absolutePath() 相同。

3. QString currentPath():返回应用程序当前目录的绝对路径。

4. QFileInfoList drives():返回系统上的根目录列表。在 Windows 上,返回一个包含“C:/”、“D:/”等的 QFileInfo 对象列表。在其他操作系统上,返回一个只包含一个根目录的列表。

30、设置名称过滤器(setNameFilters)。名称过滤器针对entryList()和entryInfoList()应用。其过程是这样的:先建立一个QStringList类型的过滤器列表filters,然后将".cpp"、"cxx"和".cc"等文件类型加入这个列表,然后通过dir的setNameFilters()函数应用这些过滤器。

31、设置目录路径(setPath)。无论路径是绝对路径还是相对路径,都可以设置目录的路径。该函数并不检查指定路径的目录是否真实存在。值得注意的是,路径设置函数有两个版本,一个接受QString类型参数,另一个则接受std::filesystem::path类型参数。

32、设定排序顺序(setSorting)。为entryList()和entryInfoList()操作设定排序规则。

四、宏成员介绍

1、Q_CLEANUP_RESOURCE(name)宏。使用这个宏来卸载由基本名称name关联的.qrc文件指定的资源。在应用程序结束时,Qt资源通常会自动卸载,但如果这些资源位于正在被卸载的插件中,就需要使用这个宏来强制删除。值得注意的是,这个宏不能在命名空间中使用。例如:Q_CLEANUP_RESOURCE(myapp)将卸载myapp相关的资源。

2、Q_INIT_RESOURCE(name)宏。通过指定的基本名称来初始化.qrc文件里的资源。当资源作为应用程序的一部分被构建时,它们会在启动时自动加载。对于存储在静态库中的资源,在某些平台上需要手动调用这个宏进行初始化。例如,如果myapp.qrc文件中列出了应用程序的资源,那么可以在main()函数中调用Q_INIT_RESOURCE(myapp)来确保资源在启动时得到初始化。如果资源名称包含无法作为有效C++函数名的一部分的字符(例如“-”),那么这些字符需要用下划线字符(“_”)替换。这个宏同样不能在命名空间中使用,且最好是从main()函数中调用。如果不能从main()函数调用,可以采取将初始化资源函数设为内联函数并在需要的地方调用的方式解决。例如:initMyResource()函数用于初始化资源,然后在MyNamespace的myFunction()函数中调用它。

想要学习更多关于C++ Qt开发的知识,可以观看C/C++项目实战/Qt5等学习视频教程。点击下面的链接可以免费报名领取视频学习资料和课程大纲。课程涵盖了Qt开发的基础知识和进阶技能,是学习和提升Qt开发技能的理想选择。更多详情,请访问提供的链接了解:blog./kenfan1647/article/details/120432433。