在开发中,通常需要选择文件,并获取文件相关信息,在这里对Qt获取文件路径、文件后缀、文件名称做下总结。
/**获取文件名称、后缀、路径
* @time: 2019-7-5
* @author: qiangu
* @return: fileInfo
*/
QFileInfo FileDirectory::getFileInfo(){
/*QFileDialog::getOpenFileName(QWidget * parent = 0,
const QString & caption = QString(),
const QString & dir = QString(),
const QString & filter = QString(),
QString * selectedFilter = 0,
Options options = 0);
*/
QFileInfo fileInfo;
QString file, fileName, fileSuffix, filePath;
file = QFileDialog::getOpenFileName();
fileInfo = QFileInfo(file);
//文件名
fileName = fileInfo.fileName();
//文件后缀
fileSuffix = fileInfo.suffix();
//绝对路径
filePath = fileInfo.absolutePath();
qDebug() << fileName <<endl
<< fileSuffix<< endl
<< filePath<< endl;
return fileInfo;
}
QFileInfo,一个非常强大的获取文件信息类,可以获取一个文件的基本全部信息(...)。
QFileDialog::getOpenFileName()函数,如果需要选择多个文件夹,Qt提供了QFileDialog::getOpenFileNames()函数
/*QFileDialog::getOpenFileName(QWidget * parent = 0,
const QString & caption = QString(),
const QString & dir = QString(),
const QString & filter = QString(),
QString * selectedFilter = 0,
Options options = 0);
*/
1.parent 指定父类组件,一般默认为NULL
2.指定对话框的标题
3.指定默认打开的文件目录,例 "./img/",即打开程序运行目录下的img文件夹
4.文件后缀名过滤器,例:"QImage(*.png *.jpg)",即只选择后缀名为jpg,png的图片文件
5.默认过滤器
6.对话框的一些参数设定,比如只显示文件夹等等,它的取值是enum QFileDialog::Option,每个选项可以使用 | 运算组合起来
参考文献: