my-QT专栏

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);
               }
           }
       }
}
上一篇下一篇

猜你喜欢

热点阅读