QT 目录

作者: c之气三段 | 来源:发表于2021-07-11 09:59 被阅读0次

获取用户目录,目录不在则创建目录。

    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);
               }
           }
       }
}

相关文章

  • QT 目录

    获取用户目录,目录不在则创建目录。 选择路径(另存为) 多选目录文件 拷贝文件 当前目录下文件名(不迭代)

  • Linux下编译qt3dStudio

    1.安装qt5.11.0 下载目录 http://download.qt.io/archive/qt/5.11/5...

  • 初识 Qt Creator 插件开发

    本文通过几个示例,来学习如何开发 Qt Creator 插件。 首先,先确定几个目录的位置: Qt 安装目录 - ...

  • Qt5使用自带工具打包exe工程

    1.找到qt自带工具Qt for Desktop 2.命令行进入要打包的exe目录下 cd /d exe所在目录 ...

  • Qt 创建目录

    Qt QDir::mkpath函数使用 mkdir()与mkpath()差别间API文档 使用mkpath正确用法...

  • Qt DirModel QTreeView

    QT DirModel QTreeView DirModel 增加目录 删除文件目录 【dialog.h】 【di...

  • Qt 打包Exe文件

    使用类似D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin目录下的windeployqt.e...

  • Qt问题-应用打包

    1、将release生成的exe(manager.exe)放到空目录中 c:/1232、执行 C:\Qt\Qt5....

  • Chrome内嵌Qt QML程序

    2.将生成的qmlchart.exe拷贝到Qt安装目录 D:\MySpace\Qt\5.12.2\msvc2017...

  • QT pro pri

    QT分模块,会有单独目录需要自己配置引用pro GUI目录pri MainWindow目录pri配置头文件 多子工...

网友评论

    本文标题:QT 目录

    本文链接:https://www.haomeiwen.com/subject/rsphpltx.html