Qt 获取选择的文件夹和文件路径,今天小编就来聊一聊关于qt 获取文件夹下所有文件?接下来我们就一起去研究一下吧!

qt 获取文件夹下所有文件(获取选择的文件夹和文件路径)

qt 获取文件夹下所有文件

Qt 获取选择的文件夹和文件路径

获取文件夹路径

1 static QString getExistingDirectory(QWidget *parent = Q_NULLPTR, 2 const QString &caption = QString(), 3 const QString &dir = QString(), 4 Options options = ShowDirsOnly); 5 参数1:父窗口 6 参数2:弹出界面的菜单栏文字 7 参数3:打开的初始目录 比如“/”表示根目录

使用方法

1 void Widget::on_openSrcDirPushButton_clicked() 2 { 3 //文件夹路径 4 srcDirPath = QFileDialog::getExistingDirectory( 5 this, "choose src Directory", 6 "/"); 7 8 if (srcDirPath.isEmpty()) 9 { 10 return; 11 } 12 else 13 { 14 qDebug() << "srcDirPath=" << srcDirPath; 15 srcDirPath = "/"; 16 } 17 }

注意:qDebug() << "srcDirPath=" << srcDirPath;输入我们打开目录的路径,比如:/mnt/hgfs,这时候如果我们要读取这个目录下的文件,此时路径应为这里写代码片/mnt/hgfs/然后加上文件名才是文件的全路径。不过或许大家用不到srcDirPath = “/”;`这一句。

【领QT开发教程学习资料,点击下方链接免费领取↓↓,先码住不迷路~】

点击→领取「链接」

获取文件路径(选择文件):

获取文件路径使用getOpenFileName即可。使用方法和getExistingDirectory类似。

1 static QString getOpenFileName(QWidget *parent = Q_NULLPTR, 2 const QString &caption = QString(), 3 const QString &dir = QString(), 4 const QString &filter = QString(), 5 QString *selectedFilter = Q_NULLPTR, 6 Options options = Options()); 7 参数1:父窗口 8 参数2:弹出界面的菜单栏文字 9 参数3:打开的初始目录 比如“/”表示根目录 10 参数4:设置打开的文件类型 11 参数5:看代码。。。

使用方法:

1 void Widget::slotBtnClick() 2 { 3 QString s = QFileDialog::getOpenFileName( 4 this, "选择要播放的文件", 5 "/", 6 "视频文件 (*.flv *.rmvb *.avi *.mp4);; 所有文件 (*.*);; "); 7 qDebug() << "path=" << s; 8 if (!s.isEmpty()) 9 { 10 11 } 12 }

另外的方法:

1 QString file_full, file_name, file_path; 2 QFileInfo fi; 3 4 file_full = QFileDialog::getOpenFileName(this); 5 6 fi = QFileInfo(file_full); 7 file_name = fi.fileName(); 8 file_path = fi.absolutePath();

1 void monizhuzhan::filenameInDir() 2 { 3 //判断路径是否存在 4 QDir dir(path); 5 if(!dir.exists()) 6 return; 7 8 //查看路径中后缀为.cfg格式的文件 9 QStringList filters; 10 filters<<QString("*.cfg"); 11 dir.setFilter(QDir::Files | QDir::NoSymLinks); //设置类型过滤器,只为文件格式 12 dir.setNameFilters(filters); //设置文件名称过滤器,只为filters格式 13 14 //统计cfg格式的文件个数 15 int dir_count = dir.count(); 16 if(dir_count <= 0) 17 return; 18 19 // //测试 20 // //文件路径及名称 21 // QFile outFile( "filename.txt"); 22 // //看能否打开 23 // if(!outFile.open(QIODevice::WriteOnly | QIODevice::Append)) 24 // return ; 25 // QTextStream ts(&outFile); 26 27 //存储文件名称 28 QStringList string_list; 29 for(int i=0; i<dir_count; i ) 30 { 31 QString file_name = dir[i]; //文件名称 32 //ts<<file_name<<"\r\n"<<"\r\n"; 33 string_list.append(file_name); 34 } 35 36 }

其中注释部分可实现将文件名称存入到txt中。

总体思路:得到路径--去除路径下的无效文件--统计个数--获取文件名称

,