Advertisement

Qt 批量修改文件名称

阅读量:

位于文件夹目录中的大量.jpg文件需要重新命名。
举个例子:
全部是来自王者农药的游戏角色皮肤。

在这里插入图片描述

进行重新命名

在这里插入图片描述

通过代码进行遍历文件夹下面的文件
代码如下:

复制代码
    #include "MainWindow.h"
    #include <QApplication>
    #include <QDir>
    #include <QTime>
    
    #include <QDebug>
    QStringList filelist;
    int k;
    int FindFile(const QString& _filePath)
    {
    
    QDir dir(_filePath);
    if (!dir.exists()) {
        return -1;
    }
      //取到所有的文件和文件名,但是去掉.和..的文件夹(这是QT默认有的)
    dir.setFilter(QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot);
    //文件夹优先
    dir.setSorting(QDir::DirsFirst);
    //转化成一个list
    QFileInfoList list = dir.entryInfoList();
    QStringList infolist = dir.entryList(QDir::Files | QDir::NoDotAndDotDot);
    if(list.size()< 1 ) {
        return -1;
    }
    int i=0;
    //递归算法的核心部分
    do{
        QFileInfo fileInfo = list.at(i);
        //如果是文件夹,递归
        bool bisDir = fileInfo.isDir();
        if(bisDir) {
            FindFile(fileInfo.filePath());
        }
        else{
            for(int m = 0; m <infolist.size(); m++) {
                                //这里是获取当前要处理的文件名
                qDebug() << infolist.at(m);
                QString src=fileInfo.filePath();
                filelist.append(src);
                 qDebug() << "src" << src;
                QString dst = "D://111111//allback"+QString::number(k)+".jpg";
                QFile file(src);
                file.copy(dst);
    
                k++;
            }
            break;
        }//end else
        i++;
    
    //        qDebug() <<fileInfo.filePath() << "||"<< src << endl;
    
    } while(i < list.size());
    }
    int main(int argc, char *argv[])
    {
    int j = 0;
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    QString _filePath = "D://111111";
    QDir dir(_filePath);
        if (!dir.exists()) {
            return -1;
        }
    
      //取到所有的文件和文件名,但是去掉.和..的文件夹(这是QT默认有的)
        dir.setFilter(QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot);
    
        //文件夹优先
        dir.setSorting(QDir::DirsFirst);
    
        //转化成一个list
        QFileInfoList list = dir.entryInfoList();
        if(list.size()< 1 ) {
            return -1;
        }
        int i=0;
    
        //递归算法的核心部分
        do{
            QFileInfo fileInfo = list.at(i);
            //如果是文件夹,递归
            bool bisDir = fileInfo.isDir();
            if(bisDir) {
                FindFile(fileInfo.filePath());
            }
            else{
                //bool isDll = fileInfo.fileName().endsWith(".dll");
    //                qDebug() << fileInfo.filePath() << ":" <<fileInfo.fileName();
    
            }//end else
            i++;
        } while(i < list.size());
    
    return a.exec();
    }
    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI助手

执行效果如下:

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~