• Qt通用方法及类库10


    函数名

        //获取保存的文件
        static QString getSaveName(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath());
        //获取选择的文件
        static QString getFileName(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath());
        //非阻塞保存文件对话框
        static QString saveFileName(const QString &filter, const QString &defaultDir = "", const QString &fileName = "");
        //获取选择的文件集合
        static QStringList getFileNames(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath());
        //获取选择的目录
        static QString getFolderName();
    
        //获取文件名,含拓展名
        static QString getFileNameWithExtension(const QString &strFilePath);
        //获取选择文件夹中的文件
        static QStringList getFolderFileNames(const QStringList &filter);
    
        //文件夹是否存在
        static bool folderIsExist(const QString &strFolder);
        //文件是否存在
        static bool fileIsExist(const QString &strFile);
        //复制文件
        static bool copyFile(const QString &sourceFile, const QString &targetFile);
        //删除文件夹下所有文件
        static void deleteDirectory(const QString &path);
    

    函数体

    QString QUIHelper::getSaveName(const QString &filter, QString defaultDir)
    {
        return QFileDialog::getSaveFileName(0, "选择文件", defaultDir, filter);
    }
    
    QString QUIHelper::getFileName(const QString &filter, QString defaultDir)
    {
        return QFileDialog::getOpenFileName(0, "选择文件", defaultDir, filter);
    }
    
    QString QUIHelper::saveFileName(const QString &filter, const QString &defaultDir, const QString &fileName)
    {
        QString file;
        QFileDialog dialog;
        dialog.setFixedSize(900, 600);
        dialog.setWindowModality(Qt::WindowModal);
        dialog.setWindowTitle("保存文件");
        dialog.setLabelText(QFileDialog::Accept, "保存(&S)");
        dialog.setLabelText(QFileDialog::Reject, "取消(&C)");
        dialog.selectFile(fileName);
        dialog.setNameFilter(filter);
        dialog.setDirectory(defaultDir);
    
        if (dialog.exec() == 1) {
            file = dialog.selectedFiles().value(0);
            file = QFileInfo(file).suffix().isEmpty() ? "" : file;
        }
    
        return file;
    }
    
    QStringList QUIHelper::getFileNames(const QString &filter, QString defaultDir)
    {
        return QFileDialog::getOpenFileNames(0, "选择文件", defaultDir, filter);
    }
    
    QString QUIHelper::getFolderName()
    {
        return QFileDialog::getExistingDirectory();
    }
    
    QString QUIHelper::getFileNameWithExtension(const QString &strFilePath)
    {
        QFileInfo fileInfo(strFilePath);
        return fileInfo.fileName();
    }
    
    QStringList QUIHelper::getFolderFileNames(const QStringList &filter)
    {
        QStringList fileList;
        QString strFolder = QFileDialog::getExistingDirectory();
    
        if (!strFolder.length() == 0) {
            QDir myFolder(strFolder);
    
            if (myFolder.exists()) {
                fileList = myFolder.entryList(filter);
            }
        }
    
        return fileList;
    }
    
    bool QUIHelper::folderIsExist(const QString &strFolder)
    {
        QDir tempFolder(strFolder);
        return tempFolder.exists();
    }
    
    bool QUIHelper::fileIsExist(const QString &strFile)
    {
        QFile tempFile(strFile);
        return tempFile.exists();
    }
    
    bool QUIHelper::copyFile(const QString &sourceFile, const QString &targetFile)
    {
        bool ok;
        ok = QFile::copy(sourceFile, targetFile);
        //将复制过去的文件只读属性取消
        ok = QFile::setPermissions(targetFile, QFile::WriteOwner);
        return ok;
    }
    
    void QUIHelper::deleteDirectory(const QString &path)
    {
        QDir dir(path);
        if (!dir.exists()) {
            return;
        }
    
        dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);
        QFileInfoList fileList = dir.entryInfoList();
    
        foreach (QFileInfo fi, fileList) {
            if (fi.isFile()) {
                fi.dir().remove(fi.fileName());
            } else {
                deleteDirectory(fi.absoluteFilePath());
                dir.rmdir(fi.absoluteFilePath());
            }
        }
    }
    
  • 相关阅读:
    如何实现类的成员函数作为回调函数
    Windows Azure Storage浏览器
    基础设施即服务系列:Windows Azure上支持Linux虚拟机
    Web Sites系列:.NET和Visual Studio上Windows Azure Web site体验
    Windows Azure 存储之本地冗余存储介绍
    上海职场六大关键词完全搜集之:职位
    初学 Delphi 嵌入汇编[2] 汇编语言关键字
    for 循环的例子
    初学 Delphi 嵌入汇编[5] 寄存器在过程与函数中的使用 续
    初学 Delphi 嵌入汇编[3] 第一个 Delphi 与汇编的例子
  • 原文地址:https://www.cnblogs.com/feiyangqingyun/p/12732222.html
Copyright © 2020-2023  润新知