1.QDir
使用QFileDialog无法指定打开文件路径,可以利用QDir来指定路径。
例如:程序路径下有一个data文件夹,设置data文件夹为QFileDialog的初始打开路径。
//创建QDir变量,此时dir的路径和程序所在路径一致
QDir* dir = new QDir();
//判断此路径下是否有data文件夹
if(!dir->exists("data"))
{
dir->mkdir("data"); //没有则创建此文件夹
}
dir->setCurrent("data"); //设置当前目录为data文件夹
//打开文件
QFileDialog *fileDlg = new QFileDialog(this);
fileDlg->setDirectory(dir); //设置QFileDialog默认打开路径
if (fileDlg->exec())
{
QStringList fileNames;
fileNames = fileDlg->selectedFiles();
... //对选择的文件进行操作
}
//或者,保存文件
QFileDialog::getSaveFileName(this,
tr("Save File"),
"",
tr("TXT (*.txt)"));
2.QFile
文件操作:检查文件是否存在,不存在则创建。
bool confirmFile(const QString sFile) const
{
QString sAppPath = QCoreApplication::applicationDirPath();
QString sFilePath = sAppPath+sFile;
QString sPath = sFilePath.left(sFilePath.lastIndexOf('/'));
//文件是否存在
if(QFile::exists(sFilePath))
return true;//文件存在,则确认可以操作
//文件不存在,先看路径是否存在
QDir dir(sPath);
if(!dir.exists(sPath))
{
//路径不存在,则创建路径
if(!dir.mkdir(sPath))
return false;//路径创建失败就没办法了,通常不会失败
}
//到这里需确认路径已经ok,且文件不存在,创建文件
QFile file(sFilePath);
//当以Write方式打开时,若文件不存在则自动创建
if(!file.open(QIODevice::WriteOnly))
return false;
file.close();
return true;
}