文章目录
QFile
文件复制:QFile::copy()
QFileInfo
QDir
含义 | |
---|---|
QDir::Dirs | 只列出目录 |
QDir::Files | 只列出文件 |
QDir::NoSymLinks | 不列出符号连接(不支持符号连接的操作系统会忽略它) |
QDir::All | 列出目录、文件、驱动器和符号连接 |
QDir::Readable | 应用程序可以读访问的文件 |
QDir::Writable | 应用程序可以写访问的文件 |
QDir::Executable | 应用程序可以执行访问的文件 |
QDir::Hidden | 列出隐藏文件(在Unix下就是以.开始的文件) |
文件是否存在:exists()
QString strDir = "";
if (strDir.isEmpty())
{
return;
}
QDir dir(strDir);
if (!dir.exists())
{
return;
}
文件过滤:setFilter()
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
文件排序:setSorting()
dir.setSorting(QDir::Size | QDir::Reversed);
文件类型过滤:setNameFilters()
QStringList filters;
filters<<QString("*.jpeg")<<QString("*.txt")<<QString("*.lnk")<<QString("*.tiff")<<QString("*.gif")<<QString("*.bmp");
dir.setNameFilters(filters);
获取文件列表:entryList()
dir.entryList(QDir::Files);
//获取子文件。设置过滤器排除系统默认的.(当前目录)和..(上级目录)条目。
dir.entryList(QDir::NoDotAndDotDot | QDir::AllEntries)
获取文件信息列表:entryInfoList()
QDir dir(m_strDir);
QStringList filterList;
filterList<<"*.doc"<<"*.docx";
return dir.entryInfoList(filterList);
获取绝对路径:absoluteFilePath(const QString &fileName)
拼接“目录 + 文件名”,获取绝对路径。
QString strPath = dir.absoluteFilePath(strFileName);
不检查fileName是否在目录中存在。
Trick:文件夹遍历
QDir dir("C:/XXX");
// 判断路径存在性
if(!dir.exists())
{
return ;
}
//文件过滤
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
//文件输出排序
dir.setSorting(QDir::Size | QDir::Reversed);
QStringList listfiles;
QFileInfoList fileinfolist = dir.entryInfoList(); // QFileInfo对象列表
for (int i=0; i<fileinfolist.size(); i++){
{
QFileInfo fileInfo = fileinfolist.at(i);
QString strfilepath = fileInfo.absoluteFilePath(); //获取文件绝对路径
listfiles.append(strfilepath);
}
int i= 0;
for(QList<QString>::iterator iter = string_list.begin();iter != listfiles.end();iter++) //迭代器输出
{
qDebug() << listfiles[i++];
}
QFileDialog
QFileDialog::getExistingDirectory()
//打开文件夹目录
QString strDir = QFileDialog::getExistingDirectory(this, tr("Title"), strDefaultPath);
仅能选择文件夹。