概述
内容纲要
QT读取本地文件夹
读取本地单个文件
QString file = QFileDialog::getOpenFileName(0, tr("Open a qds file"));
读取本地多个文件
QStringList files = QFileDialog::getOpenFileNames(
this,
"Select one or more files to open",
"/home",
"Images (*.png *.xpm *.jpg)");
读取本地目录下的文件
void PlayList::openFolders()
{
setPlayListFilePath();
clearList();
LoadAllFiles(PLAY_PATH);
}
void PlayList::setPlayListFilePath()
{
QString file = QFileDialog::getExistingDirectory();
if(file.isEmpty())
return;
PLAY_PATH = file;
emit play_pathChanged(PLAY_PATH);
}
void PlayList::LoadAllFiles(const QString &path)
{
// TODO: add url;
QFileInfoList files = getFileList(path);
if (files.isEmpty())
return;
// TODO: check playlist file: m3u, pls... In another thread
for (int i = 0; i < files.size(); ++i) {
QFileInfo file = files.at(i);
//qDebug()<< file << endl;
if (!file.isFile())
continue;
insert(file.absoluteFilePath(), i);
}
}
QFileInfoList PlayList::getFileList(const QString &path)
{
QDir dir(path);
//QStringList nameFilters;
//nameFilters << "*.mp4" << "*.avi" <
// << "*.yuv" << "*.mpg" <
//dir.setNameFilters(nameFilters);
//获取文件列表
//QStringList files = dir.entryList(nameFilters,QDir::Files|QDir::Readable, QDir::Name);
//获取文件信息
QFileInfoList file_list = dir.entryInfoList(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
//QFileInfoList folder_list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
//以下为获取子目录文件信息
// for (int i = 0; i != folder_list.size(); i++) {
// QString name = folder_list.at(i).absoluteFilePath();
// QFileInfoList child_file_list = GetFileList(name);
// file_list.append(child_file_list);
// }
return file_list;
}
查找目录下某类型的所有文件信息
QFileInfoList PlayList::getFileList(const QString &path)
{
QDir dir(path);
QStringList nameFilters;
nameFilters << "*.mp4" << "*.avi" <
<< "*.yuv" << "*.mpg" <
dir.setNameFilters(nameFilters);
//获取文件列表
//QStringList files = dir.entryList(nameFilters,QDir::Files|QDir::Readable, QDir::Name);
//获取文件信息
QFileInfoList file_list = dir.entryInfoList(nameFilters,QDir::Files | QDir::Hidden | QDir::NoSymLinks);
QFileInfoList folder_list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
//以下为获取子目录文件信息
// for (int i = 0; i != folder_list.size(); i++) {
// QString name = folder_list.at(i).absoluteFilePath();
// QFileInfoList child_file_list = GetFileList(name);
// file_list.append(child_file_list);
// }
return file_list;
}
查找目录下某类型的所有文件名称
QStringList testClass::findFiles(const QString &startDir, QStringList filters)
{
QStringList names;
QDir dir(startDir);
//搜索当前目录符合条件的文件
foreach (QString file, dir.entryList(filters, QDir::Files))
names += startDir + '/' + file;
//搜索当前目录的子目录符合条件的文件
foreach (QString subdir, dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot))
names += findFiles(startDir + '/' + subdir, filters);
return names;
}
函数调用方式
QStringList files = findFiles("./", QStringList() << "*.cpp" << "*.h");
其他转换
QFileInfo fileinfo(url.path()); //QUrl转换为QFileinfo
QDateTime::FromString(str,"yyyy-MM-dd hh:mm:ss"); //QString转换QDateTime
最后
以上就是清脆烤鸡为你收集整理的qt 扫描文件夹中的文件_知识-QT读取本地文件夹内容的全部内容,希望文章能够帮你解决qt 扫描文件夹中的文件_知识-QT读取本地文件夹内容所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复