QT 目录
2021-07-11 本文已影响0人
c之气三段
获取用户目录,目录不在则创建目录。
QDir dir;
QString path;
path=QDir::homePath()+QStringLiteral("/myWord");
if(!dir.exists(path))
{
dir.mkpath(path);
}
path+="/temp.doc";
选择路径(另存为)
QString filename= QFileDialog::getSaveFileName(this,tr("Save Image"),QDir::homePath()+"/temp.doc",tr("PNG(*.png);;JPG(*.jpg);;BMP(*.bmp)")); //选择保存文件路径
QString fileName = QFileDialog::getOpenFileName(
this, tr("open image file"),
"./", tr("Image files(*.bmp *.jpg *.pbm *.pgm *.png *.ppm *.xbm *.xpm);;All files (*.*)"));
QFile file("./john.txt");
if (file.exists()){
QMessageBox::information(this,“测试”,“文件存在”);
}else{
QMessageBox::critical(this,“测试”,“文件不存在”);
};
QDir::currentPath();//工作目录
QString saveFileName= QFileDialog::getExistingDirectory(this,tr("Save Flie"),QDir::homePath());//获取选择目录
if(saveFileName.isEmpty())
{
return;
}
多选目录文件
QFileDialog fileDialog(this);
fileDialog.setWindowTitle("SelectFile");
//fileDialog.setNameFilter("Csgn(*.mp3 *.wav)"); //设置一个过滤器
fileDialog.setFileMode(QFileDialog::ExistingFiles);//多选
//弹出对话框
if (fileDialog.exec() == QDialog::Accepted)
{
m_strPathList = fileDialog.selectedFiles();
}
if(m_strPathList.size()>0)
{
ui->lineEdit->setText(m_strPathList.at(0));
}
拷贝文件
QFileDialog fileDialog(this);
fileDialog.setWindowTitle("SelectFile");
//fileDialog.setNameFilter("Csgn(*.mp3 *.wav)"); //设置一个过滤器
fileDialog.setFileMode(QFileDialog::ExistingFiles);//多选
//弹出对话框
if (fileDialog.exec() == QDialog::Accepted)
{
m_strPathList = fileDialog.selectedFiles();
}
QString filePath = GlobalData::WORKSPACE;
filePath.append("/fwh/Fluent_out");//资源路径
QDir dir(filePath);
if(!dir.exists())
{
dir.mkdir(filePath);
}
for (int i = 0; i < m_strPathList.size(); ++i)
{
QString oldFileStr = m_strPathList.at(i);
QFile oldFile(oldFileStr);
if(!oldFile.exists())
{
continue;
}
QString newFilePath = filePath;
newFilePath.append("/").append(oldFileStr.section("/",-1));//要拷贝到的路径
QDir newDir(newFilePath);
if(newDir.exists())
{
newDir.remove(newFilePath);//如果存在就重写
}
QFile::copy(oldFileStr,newFilePath);//开始拷贝
}
当前目录下文件名(不迭代)
QStringList getFileNames(const QString &path)
{
QDir dir(path);
QStringList nameFilters;
nameFilters << "*.jpg" << "*.png";
QStringList files = dir.entryList(nameFilters, QDir::Files|QDir::Readable, QDir::Name);
return files;
}
/**
* @brief getCurrDirAllPath 迭代获取当前目录下的所有相对路径
* @param dirPath 当前目录
* @param strListDir 返回列表
*/
void getCurrDirAllPath(QString dirPath, QStringList &strListDir);
void ConfigLibWidget::getCurrDirAllPath(QString dirPath, QStringList &strListDir)
{
QDir dir(dirPath);
QFileInfoList listFileInfos = dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
foreach (QFileInfo fileInfo , listFileInfos)
{
if (fileInfo.isDir())
{
QString currDir = fileInfo.absoluteFilePath();
QStringList list = currDir.split(dirPath);
strListDir.append(list.at(1));
getCurrDirAllPath(currDir, strListDir);
}
}
}
/**
* @brief getAllFileName 获取目录下所有文件名
* @param dirPath 路径
* @param strListFile 返回的列表
* @param suffix 后缀
* @param isAbsolute 返回绝对路径还是文件名
*/
void getAllFileName(QString dirPath, QStringList &strListFile,const QString &suffix,bool isAbsolute = false);
void ConfigLibWidget::getAllFileName(QString dirPath, QStringList &strListFile,const QString &suffix,bool isAbsolute)
{
QDir dir(dirPath);
QFileInfoList listFileInfos = dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
foreach (QFileInfo fileInfo , listFileInfos)
{
if (fileInfo.isDir())
{
getAllFileName(fileInfo.absoluteFilePath(), strListFile,suffix,isAbsolute);
}
else
{
QString filename = fileInfo.absoluteFilePath();
if(filename.section(".",-1).toLower() == suffix)
{
if(!isAbsolute)
{
filename = filename.section("/",-1);
}
strListFile.append(filename);
}
}
}
}