QFileDialog::getExistingDirrectory() 获取选定路径下的一类文件
文件浏览
通过QFileDialog::getExistingDirrectory()函数实现用户返回已存在的路径。
QFileDialog::getExistingDirrectory()
[static] QString QFileDialog::getExistingDirectory(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), Options options = ShowDirsOnly)
用法
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
"/home",
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
实例:
构造函数
QString defaultPath = QDir::currentPath();
QString filePath = QFileDialog::getExistingDirectory(this, QStringLiteral("选择文件夹"), defaultPath);
if (filePath.isEmpty())
{
return;
}
getFileInformation(filePath); //获取文件信息
获取文件信息
getFileInformation(QString filePath)
{
QDir dir(filePath);
QStringList fileList;
// 限定文件类型
fileList << QStringLiteral("*.xml") << QStringLiteral("*.txt") << QStringLiteral("*.csv");
dir.setNameFiletrs(fileList); //设定文件过滤器
int nFileCount = dir.count();
// 获取文件名(全名,包含后缀名)
m_fileFullNameList = dir.entryList();
// 获取文件名称、大小、最后修改日期
for(int i = 0; i < nFileCount; i++)
{
QString strPath = filePath + "/" + fileFullNameList.at(i);
QFileInfo fileInfo(strPath);
// 获取文件名,不包含后缀名
m_fileNameList.append(fileInfo.baseName());
// 获取文件大小
qint64 n_Size = fileInfo.size(); //单位bytes
int fileSize;
if(n_size % 1024 == 0)
{
fileSize = n_Size / 1024;
}
else
{
fileSize = n_Size / 1024 + 1;
}
m_fileSizeList.append(QString::number(fileSize) + "KB");
// 获取最后读取时间
QDateTime dateTime = fileInfo.lastRead();
m_fileLastTimeList.append(dateTime.toString("yyyy/MM/dd hh:mm:ss"));
}
}
以上代码中的**m_fileFullNameList, m_fileNameList, m_fileSizeList, m_fileLastTimeList**均为成员变量,其**类型为QStringList**
小结
通过以上代码可以获取到当前选择的路径下指定类型的所有文件路径,基于此可以完成许多相关的其他操作,比如同类型文件的表格填充等,鉴于本文是对**QFileDialog::getExistingDirrectory()**函数用法的介绍,故不对其他操作进行探讨,读者可根据实际需求进行后续相关操作的实现。