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()
3 //文件夹路径
4 srcDirPath = QFileDialog::getExistingDirectory(
5 this, "choose src Directory",
6 "/");
8 if (srcDirPath.isEmpty())
10 return;
11 }
12 else
13 {
14 qDebug() << "srcDirPath=" << srcDirPath;
15 srcDirPath += "/";
16 }
注意:
qDebug() << "srcDirPath=" << srcDirPath;输入我们打开目录的路径,比如:/mnt/hgfs,这时候如果我们要读取这个目录下的文件,此时路径应为这里写代码片/mnt/hgfs/然后加上文件名才是文件的全路径。不过或许大家用不到srcDirPath += “/”;`这一句。
获取文件路径(选择文件):
获取文件路径使用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()
3 QString s = QFileDialog::getOpenFileName(
4 this, "选择要播放的文件",
5 "/",
6 "视频文件 (*.flv *.rmvb *.avi *.mp4);; 所有文件 (*.*);; ");
7 qDebug() << "path=" << s;
8 if (!s.isEmpty())
11 }
另外的方法:
1 QString file_full, file_name, file_path;
2 QFileInfo fi;
4 file_full = QFileDialog::getOpenFileName(this);
6 fi = QFileInfo(file_full);
7 file_name = fi.fileName();
8 file_path = fi.absolutePath();
1 void monizhuzhan::filenameInDir()
3 //判断路径是否存在
4 QDir dir(path);
5 if(!dir.exists())
6 return;
8 //查看路径中后缀为.cfg格式的文件
9 QStringList filters;
10 filters<<QString("*.cfg");
11 dir.setFilter(QDir::Files | QDir::NoSymLinks); //设置类型过滤器,只为文件格式
12 dir.setNameFilters(filters); //设置文件名称过滤器,只为filters格式
14 //统计cfg格式的文件个数
15 int dir_count = dir.count();
16 if(dir_count <= 0)
17 return;
19 // //测试
20 // //文件路径及名称
21 // QFile outFile( "filename.txt");
22 // //看能否打开
23 // if(!outFile.open(QIODevice::WriteOnly | QIODevice::Append))
24 // return ;
25 // QTextStream ts(&outFile);
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 }
其中注释部分可实现将文件名称存入到txt中。
总体思路:得到路径--去除路径下的无效文件--统计个数--获取文件名称