通过对话框选择需要的文件类型
QString fileName = QFileDialog::getOpenFileName(this,tr("请选择图片"),mainPath,tr("BMP图片(*.bmp);;文本文件(*.txt)"));
第一个参数一般都是this,第二个是对话框的名字,可以根据业务要求来定,第三个是文件路径,从该路径开始,第四个是想要选择的文件类型,在多个文件类型种类中间添加两个分号(;;)。返回该文件的文件名。我们还可以通过一个函数来判断该文件是否为空,是QString下的一个函数:isEmpty()。如果文件是空的那么可以用一个警告的对话框来提示:
if (fileName.isEmpty())
{
QMessageBox::warning(this, "Warning!", "Failed to open!");
}
遍历某个路径下的文件
当我们需要对某个文件夹下的文件操作,比如删除或者对其名字进行改动,就可以通过以下函数来进行。
QString directory = QFileDialog::getExistingDirectory(this,tr("选择文件夹"),mainPath,QFileDialog::ShowDirsOnly);
使用getExistingDirectory函数,第一个参数一般是this,第二个是对话框的名字,第三个是开始的路径,第四个参数一般也为QFileDialog::ShowDirsOnly。
既然是要遍历文件,那么肯定需要有个循环,并且还需要找到索引,先用QDir类接受到文件索引
QDir sub_dir(directory);
以下为通过for循环来遍历文件:
QStringList dirList = sub_dir.entryList(QDir::Files,QDir::Time);
//得到list表
for(int i;i<=dirList.size();i++){ //循环的方式
}
我们可以拼接文件名来操作文件:
//文件当前路径
QString imagePath=directory+"/"+QString::number(i)+".bmp";
//这里拿图片格式举例
遍历文件夹下的目录
先进行操作得到一级路径的选择对话框
QString mainPath = QFileDialog::getExistingDirectory(this,tr("选择文件夹"),"F:",QFileDialog::ShowDirsOnly); //一级路径
QDir sub_dir(mainPath);//得到文件夹索引
QFileInfoList dirList = sub_dir.entryInfoList(QDir::Files|QDir::NoDotAndDotDot|QDir::Dirs);
//得到文件夹列表,参数一般都是固定
QFile::rename(oldName,newName);//修改文件名