欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Qt 批量修改文件名称

程序员文章站 2024-03-19 09:03:58
...

在文件加下面有很多的.jpg文件需要修改名称
如图所示:
都是王者农药的皮肤
Qt 批量修改文件名称
进行重新命名
Qt 批量修改文件名称
通过代码进行遍历文件夹下面的文件
代码如下:

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

执行效果如下:
Qt 批量修改文件名称

相关标签: 图形界面QT