• 备份程序-遍历


    #include "fllemanage.h"
    #include "ui_fllemanage.h"
    
    
    fllemanage::fllemanage(QWidget *parent)
    	: QWidget(parent)
    	, ui(new Ui::fllemanage)
    {
    	ui->setupUi(this);
    
    
            //copy测试!!!!!!
    //        QFile src("F:/src");
    //        QFile dst("F:/dst");
    
    
    //        bool success = true;
    //        success &= src.open( QFile::ReadOnly );
    //        success &= dst.open( QFile::WriteOnly | QFile::Truncate );
    //        success &= dst.write( src.readAll() ) >= 0;
    
    
    //       QFile::copy("F:/src/1.txt" , "F:/dst/2.txt");
    //        src.close();
    //        dst.close();
    
    
    	//    //写文本
    	//    QFile f("F:/src/1.txt");
    	//    if(!f.open(QIODevice::WriteOnly | QIODevice::Text))
    	//    {
    	//        qDebug() << "Open failed." << endl;
    	//    }
    
    
    	//    QTextStream txtOutput(&f);
    	//    QString s1("123");
    	//    quint32 n1(123);
    
    
    	//    txtOutput << s1 << endl;
    	//    txtOutput << n1 << endl;
    
    
    	//    f.close();
    
    
    	//   //读文本
    	//    QFile f("F:/src/1.txt");
    	//    if(!f.open(QIODevice::ReadOnly | QIODevice::Text))
    	//    {
    	//        qDebug() << "Open failed." << endl;
    	//    }
    
    
    	//    QTextStream txtInput(&f);
    	//    QString lineStr;
    	//    while(!txtInput.atEnd())
    	//    {
    	//        lineStr = txtInput.readLine();
    	//        qDebug() << lineStr << endl;
    	//    }
    
    
    	//    f.close();
    }
    
    
    fllemanage::~fllemanage()
    {
    	delete ui;
    }
    
    
    void fllemanage::on_pushButton_clicked()
    {
    	//    int count = 0;
    	//    QString dirpath = "C:/Users/00/Desktop/git clone/OpenCV-Python-Tutorial/.idea";
    	//    //设置要遍历的目录
    	//    QDir dir(dirpath);
    	//    qDebug()<<dirpath<<endl;
    	//    //设置文件过滤器
    	//    QStringList nameFilters;
    	//    //设置文件过滤格式
    	//    nameFilters << "*.xml";
    	//    dir.setNameFilters(nameFilters);
    	//    qDebug()<<dir.entryList()<<endl;
    	//    qDebug()<<dir.entryInfoList()<<endl;
    	//    //将过滤后的文件名称存入到files列表中
    	//    QStringList files = dir.entryList(nameFilters, QDir::Files|QDir::Readable, QDir::Name);
    	//    for(int i = 0; i<files.size(); i++)
    	//    {
    	//        qDebug()<<"now, it's output from QStringlist"<<endl;
    	//        qDebug()<<files[i]<<endl;
    	//    }
    
    
        //QStringList list = findALLfiles("C:/Users/00/Desktop/vsrun/123");
        //QStringList list = findALLfiles("C:/Users/00/Desktop/vsrun");
        QStringList list = findALLfiles("C:/Users/00/Desktop/git clone");
                                                                            //for(int i = 0 ; i <list.size(); i++)
    	  //qDebug() <<list[i]<<endl;
    	QStringList purposelist;
        purposelist = list.filter(".jpg");
    	int count = 0;
    	for (int i = 0; i < purposelist.size(); i++)
    	{
    		qDebug() << purposelist[i] << endl;
    		count++;
    	}
    	qDebug() << "the max file has " << list.size() << endl;
    	qDebug() << "the purpose file has " << count << endl;
    
    
    	//新建文件夹(目标文件保存的位置)
    //     QDir dir("C:/Users/00/Desktop/vsrun");
    //     if(!dir.exists("copy to here")){
    //         dir.mkdir("copy to here");
    //     }
        QString toDir = "C:/Users/00/Desktop/123";
    
    
    	//toDir.replace("\","/");
    
    
    	QDir dir(toDir);
    	if (!dir.exists(toDir)) {
    		dir.mkdir(toDir);
    	}
    
    
    	QFile destFile(toDir);
    	bool success = true;
    	success &= destFile.open(QFile::WriteOnly | QFile::Truncate);
    
    
    	for (int i = 0; i < purposelist.size(); i++)
        {
            std::string pur = purposelist[i].toStdString();//都转换为string
           // qDebug()<<pur<<endl;
            std::string sdir = toDir.toStdString();
    
    
            int pos = pur.find_last_of('/'); //找到最后/
            std::string s(pur.substr(pos+1));
            sdir.append("/");
    
    
            sdir.append(s);
            QString qsdir = QString(QString::fromLocal8Bit(sdir.c_str()));
            qDebug()<<qsdir<<endl;
            if (QFile::copy(purposelist[i], qsdir)) {  //将文件复制到新的文件路径下
                {
                    if(QFile::copy(purposelist[i],toDir))
                     qDebug() << QStringLiteral("复制成功");
    			}
    		}
    	}
    }
    
    
    //迭代器遍历所有文件并返回
    QStringList fllemanage::findALLfiles(const QString &dir_path) {
    	QStringList get_files;
    	QDir dir(dir_path);
    	if (!dir.exists())
    	{
    		qDebug() << "it is not true dir_path";
    	}
    
    
    	/*设置过滤参数,QDir::NoDotAndDotDot表示不会去遍历上层目录*/
    	QDirIterator dir_iterator(dir_path, QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
    
    
    	while (dir_iterator.hasNext())
    	{
    		dir_iterator.next();
    		QFileInfo file_info = dir_iterator.fileInfo();
    		QString files = file_info.absoluteFilePath();
    		get_files.append(files);
    	}
    
    
    	return get_files;
    }
  • 相关阅读:
    gin使用validator库参数校验若干实用技巧
    在gin框架中使用JWT
    使用zap接收gin框架默认的日志并配置日志归档
    gin框架路由拆分与注册
    Gin框架介绍及使用
    GO学习-(39) 优雅地关机或重启
    GO学习-(38) Go语言结构体转map[string]interface{}的若干方法
    WPF中不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案
    [ 夜间模式 ] NightVersion
    HDU1518 Square(DFS)
  • 原文地址:https://www.cnblogs.com/qianxunslimg/p/13728465.html
Copyright © 2020-2023  润新知