Qt基础-QDir目录类
如果目录中有中文,注意要在开头添加下句:
#pragma execution_character_set("utf-8")
QString appPath = QDir::currentPath(); //获取当前应用程序的路径
QDir::toNativeSeparators(path); //将目录中的斜杠/转换为反斜杠\,使用QFileDialog打开的是斜杠
//设置目录
//注意:QDir中的路径以“/”分隔,而Windows文件夹显示栏以“\”分隔,Qt会自动进行转换
QDir m_dir(appPath + "/test"); //第一种
m_dir.setPath(appPath + "/产品目录"); //第二种
m_dir.rename(appPath + "/test",appPath + "/newName"); //重命名
m_dir.removeRecursively(); //删除文件夹及其下所有内容
如果目录不存在则创建目录
if(!m_dir.exists())
{
m_dir.mkdir(m_dir.absolutePath());
}
获取路径下的文件夹(文件)名
QStringList dirNames = progPath.entryList(QDir::Dirs | QDir::NoDotAndDotDot); //获取文件夹
QStringList fileNames = progPath.entryList(QDir::Files | QDir::NoDotAndDotDot); //获取文件
entryList()的参数为QDir::Filter的枚举类型,可以使用“|”进行组合,枚举项及解释如下:
枚举值 | 描述 |
---|---|
QDir::Dirs | 列出目录 |
QDir::AllDirs | 列出所有目录,不对目录名进行过滤 |
QDir::Files | 列出文件 |
QDir::Drives | 列出逻辑驱动器名称 |
QDir::NoSymLinks | 不列出符号链接 |
QDir::NoDotAndDotDot | 不列出.及… |
QDir::NoDot | 不列出. |
QDir::NoDotDot | 不列出… |
QDir::AllEntries | 其值为Dirs | Files | Drives |
QDir::Readable | 列出可读的文件或目录 |
QDir::Writable | 列出可写的文件或目录 |
QDir::Executable | 列出有执行权限的文件或目录;Readable、Writable及Executable均需要和Dirs或Files枚举值联合使用 |
QDir::Modified | 列出已被修改的文件 |
QDir::Hidden | 列出隐藏文件 |
QDir::System | 列出系统文件 |
QDir::CaseSensitive | 设定过滤器为大小写敏感 |