QT写的U盘批量复制小工具
1,简介
UDiskCopy :U盘批量复制工具
开发背景:
公司出货时软件安装包及其他电子档文件,是采用定制的小容量U盘存储的,
之前是生产人员一个一个手动拷贝到各个U盘,现在量增大,一次要出几十上百个备用,
于是买了USB HUB,搭配该工具用于批量复制,提高制作效率。
2,界面截图
3,主要代码
MainWindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();protected:void timerEvent(QTimerEvent *event);private slots:void on_btnBrowse_clicked();void on_btnCopy_clicked();private:void RefreshList();QStringList GetRemovableDisks();private:Ui::MainWindow *ui;int mTimer;
};#endif // MAINWINDOW_H
MainWindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QStandardPaths>
#include <QDebug>
#include "Windows.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);//如果桌面存在指定名称的文件夹,直接自动帮填上。//平常就把最新安装包放在该文件夹,那么启动软件只需要直接点"复制"就行QString dir = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + QStringLiteral("/上位机软件");if(QFile::exists(dir)){ui->lineEdit->setText(dir);}RefreshList();mTimer = startTimer(1000);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::timerEvent(QTimerEvent *event)
{if(mTimer = event->timerId()){//每秒刷新一次可移动磁盘列表RefreshList();}
}void MainWindow::on_btnBrowse_clicked()
{//选择要被复制的文件夹QString dirDesk = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);QString dir = QFileDialog::getExistingDirectory(this, QStringLiteral("选择文件夹"), dirDesk);if (QFile::exists(dir)){ui->lineEdit->setText(dir);}
}void MainWindow::on_btnCopy_clicked()
{QString dir = ui->lineEdit->text();if(!QFile::exists(dir)){return;}QStringList disks = GetRemovableDisks();foreach (QString disk, disks){//复制文件夹内文件(不递归)QDir qdir(dir);foreach(QString name, qdir.entryList(QDir::AllEntries)){QString path = dir + "/" + name;QFileInfo fi(path);if(fi.isFile()){QFile::copy(path, disk + "/" + name);}}}
}void MainWindow::RefreshList()
{//刷新可移动磁盘列表ui->listWidget->clear();ui->listWidget->addItems(GetRemovableDisks());
}QStringList MainWindow::GetRemovableDisks()
{//枚举可移动磁盘QStringList disks;char szDriver[3];for (int i = 'C'; i <= 'Z'; i++){szDriver[0] = i;szDriver[1] = ':';szDriver[2] = 0;UINT uType = GetDriveTypeA(szDriver);if (uType == DRIVE_REMOVABLE){//qDebug()<< "find" << (char)i;disks.append(QString("%1:").arg((char)i));}}return disks;
}
4,源码下载
配套源码,在群文件免费下载:
群号码:1149411109
群名称:Qt实战派学习群
QT写的U盘批量复制小工具相关推荐
- 百度网盘批量重命名工具怎么用,百度网盘怎么批量修改文件名
这里写百度网盘批量重命名工具怎么用,百度网盘怎么批量修改文件名自定义目录标题 很多时候,我们百度网盘里的文件需要重命名,方便我们整理文件.如果一个一个修改,很费时费力,那么,有没有百度网盘批量重命名工 ...
- 使用Qt写一个简单的五子棋单机小游戏
使用Qt写一个简单的五子棋单机小游戏 刚学,不够专业请勿喷,有不对的地方还请指出,我渴望进步!现在贴出这个游戏我原创的所有代码.希望可以帮到有需要的人. 游戏界面: 因为后面添加了.wav的音频文件, ...
- BPFT1.7,全名BaiduPanFilesTransfers免费的百度网盘批量转存工具【精】
BaiduPanFilesTransfers 介绍使用 免费的百度网盘批量转存工具,基于Python 3.8+Tkinter 详细介绍使用请访问:小众软件 缺点及推荐 目前缺点是不能传大数量的链接!目 ...
- 用python3+ PyQt5写一个NFC模块的串口小工具的一星期
用python3+ PyQt5写一个NFC模块的串口小工具的一星期 原因始于我们的小团队,没有写Windows上位机的人才.自己的[NFC读读写模](https://shop165836966.tao ...
- Nodejs批量处理图片小工具:批量修改图片信息
git:GitHub - xiaoli0510/ImgToolNode: Nodejs批量处理图片小工具 小工具一:批量修改文件夹里面的图片名称 步骤: 1.安装nodejs. 2.根据需要修改edi ...
- 百度网盘批量改名字工具
百度网盘批量改名字工具,不用再一个一个改了 链接:https://pan.baidu.com/s/1LRWxi4qVK9dmz-4StCiwBQ 提取码:0ers
- 写了个MySQL数据备份小工具,放出来跟大家分享一下,欢迎拍砖。
自己写了个MySQL数据备份小工具,放出来跟大家分享一下,欢迎拍砖. 因为数据库中有blob类型的字段,用SQLyog等工具备份出的脚本都是乱码,没办法导入,可是又经常要备份MySQL数据库,以前一直 ...
- EXCEL批量复制小技巧,赶紧存起来!
EXCEL批量复制: 1.选中A1列单元格 ctrl+c复制 备用 2.在左上角的单元格名称,如:A1:假设要复制5000行,则输入:A1:A5000 按回车键 Enter 此时会选中A1到A5000 ...
- switchyomega规则列表备份_求人不如求己,自己动手写一个CSDN博客备份小工具?...
前提概要 背景 因为笔者在上个月的时候,突然想扩展一下技术栈,不能仅仅局限于Java,还是得掌握一门工具语言,不然显得太low.所以也就对Python和Golang类的语言有了一些兴趣.也就在上个月简 ...
- Jar批量管理小工具
文章目录 前言 一.代码结构 二.开源仓库地址 总结 前言 一个Jar包管理的小工具,目前有如下几个作用,后面可以慢慢扩展 1.搜索当前项目路径下的所有jar并复制到某一路径下 2.执行某个目录下的j ...
最新文章
- linux文件夹前的描述,Linux对内存结构的描述
- 跟我学爬虫-1-爬虫简介
- 洛谷P1546 最短网络 Agri-Net
- 用DocumentFragments或innerHTML取代复杂的元素注入
- java反射创建对象_java8反射创建对象
- 新认知,新力量!神策 2021 数据驱动大会来了
- Linux Shell——-if -eq,if -ne,if -gt[笔记]
- graph面板x轴模式包括哪些_发那科数控车床面板讲解
- python中扑克牌类设计_Python中的计数 Counter类
- c primer英文版第5版_2019足坛10大巨星:梅西第2范戴克第3,C罗第5
- 某音爆火,人物头像动漫化,为女朋友打造独一无二的头像【python实战:人物图片动漫化】
- 消息中间件→产生原因、JMS与AMQP、主流消息中间件、基本概念、ActiveMQ、集群、实际场景问题解决方案、集成rabbitMQ与kafka
- 计算机中的方法,计算机中文本的表示方法
- VS2017 winform 打包(使用 Microsoft Visual Studio 2017 Installer Project)
- ad一张图纸绘制多图_你知道,为什么工程图纸都是蓝图纸,而不是白色黄色红色?...
- 怎么在长方体上挖孔_被雷军狂喷的挖孔屏到底好不好?分析你必须知道的优缺点!...
- MATLAB遇到问题:MATLAB2020以上版本代码拷到其他低版本电脑出现中文乱码的解决方案
- vs2017下载教程
- 一般PCB基本设计流程说明
- c语言开发gc,GC的基本原理