网站建设的制度建设,h5课件制作软件,小型企业管理系统,艺术家个人网站设计之前讲读写文件的文章#xff0c;有涉及部分QDir的使用#xff0c;讲解感觉不够全面#xff0c;特此增加一篇。 QDir 是 Qt 框架中用于操作文件和目录的类#xff0c;它提供了跨平台的文件系统访问接口#xff0c;可以进行目录遍历、文件查找、创建、删除、移动等操作。以…之前讲读写文件的文章有涉及部分QDir的使用讲解感觉不够全面特此增加一篇。 QDir 是 Qt 框架中用于操作文件和目录的类它提供了跨平台的文件系统访问接口可以进行目录遍历、文件查找、创建、删除、移动等操作。以下是对 QDir 的详细使用说明及其 C 代码示例
QDir 的主要功能与方法 目录操作 创建目录mkdir()、mkpath() 创建单级或多级目录。删除目录rmdir() 删除空目录removeRecursively() 删除包含文件和子目录的非空目录。重命名或移动目录rename()。 目录信息获取 当前目录currentPath() 获取当前工作目录setCurrent() 设置当前工作目录。目录属性exists()、isReadable()、isWritable()、isAbsolute() 等方法检查目录的各种属性。目录内容entryList()、entryInfoList() 获取目录内文件和子目录列表可设置过滤条件和排序方式。 文件操作与 QFile 类似但基于目录上下文 文件查找entryList()、entryInfoList()、findFiles()、findChildren() 查找特定文件或子目录。文件操作remove() 删除文件rename() 重命名文件。 遍历目录 迭代器使用 QDirIterator 对目录进行深度优先或广度优先遍历。
QDir 使用 C 代码示例
#include QDir
#include QFileInfo
#include QTextStream
#include QStandardPaths
#include QFile
#include QMessageBoxint main(int argc, char *argv[]) {// 示例1获取并打印当前工作目录QDir currentDir QDir::current();qDebug() Current directory: currentDir.path();// 示例2创建多级目录QString newDirPath /path/to/new/directory;if (QDir().mkpath(newDirPath)) {qDebug() Directory created: newDirPath;} else {qDebug() Failed to create directory!;}// 示例3列出指定目录下的所有文件和子目录不递归QDir dir(/path/to/some/directory);QStringList entries dir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);foreach (const QString entry, entries) {qDebug() entry;}// 示例4按大小排序列出目录下的所有文件并显示详细信息QDir dirWithDetails(/path/to/some/directory);dirWithDetails.setSorting(QDir::Size | QDir::Reversed);QFileInfoList fileInfoList dirWithDetails.entryInfoList(QDir::Files);foreach (const QFileInfo info, fileInfoList) {qDebug() Name: info.fileName();qDebug() Size: info.size();qDebug() IsDir: info.isDir();qDebug() Last modified: info.lastModified().toString();qDebug() ;}// 示例5在用户文档目录下创建一个新文件并写入文本QString userDocsPath QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);QFile newFile(userDocsPath /example.txt);if (newFile.open(QIODevice::WriteOnly | QIODevice::Text)) {QTextStream out(newFile);out This is an example text written to a file in the Documents folder.;newFile.close();QMessageBox::information(nullptr, File Created, Example file was successfully created.);} else {QMessageBox::critical(nullptr, Error, Failed to create or write to the example file.);}return 0;
}以上代码示例包含了以下几个 QDir 使用场景
获取并打印当前工作目录。创建多级目录。列出指定目录下的所有文件和子目录不递归。按大小排序列出目录下的所有文件并显示详细信息。在用户文档目录下创建一个新文件并写入文本。
这些示例涵盖了 QDir 类的基本操作包括目录创建、查询、文件操作等。在实际项目中您可以根据具体需求灵活运用 QDir 提供的各种方法进行文件系统操作。如果需要更复杂的功能如深度优先或广度优先遍历目录树可以结合使用 QDirIterator 类。