IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 文件后缀名批量修改工具 -> 正文阅读

[C++知识库]文件后缀名批量修改工具

因为喜欢在网上下载一些资源,而很多不那么正规的资源喜欢更改后缀防止审查,手动一个一个改比较麻烦,网上找的工具也不太放心,所以自己用vs+qt写了个小工具,功能很简单,代码也少,所以放在这里供大家学习讨论。

使用软件是vs2013+qt5.3.1,虽然生成了release版本,但是没安装vs的可能还是无法运行

1.功能介绍

菜单栏暂时没用,因为功能太少了没啥必要,以后可能会加。

中间的白框会显示当前要修改的文件的详细地址,支持将文件拖拽到框里修改,或者点击打开文件选择要修改的文件。

需要更改的后缀写在更改后缀框里,默认是rar,需要注意的是如果原文件没有后缀需要将对应项打勾,不然可能会出现不可预见的bug,以后可能会改(在改了在改了,咕咕)

最后点击开始更改就行了。

2. 源代码如下:

rename.cpp
#include "rename.h"
#include "QMessageBox"
#include "QFileDialog"
#include "QDebug"

ReName::ReName(QWidget *parent)
: QMainWindow(parent)
{
	ui.setupUi(this);
}

ReName::~ReName()
{

}
//打开文件按钮
void ReName::on_pushButton_Open_clicked(){

	int i = 0;
	//定义文件对话框类
	QFileDialog *fileDialog = new QFileDialog(this);
	//定义文件对话框标题
	fileDialog->setWindowTitle(tr("打开文件"));
	//设置默认文件路径
	fileDialog->setDirectory(".");
	设置文件过滤器
	//fileDialog->setNameFilter(tr("Images(*.png *.jpg *.jpeg *.bmp)"));
	//设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
	fileDialog->setFileMode(QFileDialog::ExistingFiles);
	//设置视图模式
	fileDialog->setViewMode(QFileDialog::Detail);
	//打印所有选择的文件的路径

	if (fileDialog->exec())
	{
		fileNames = fileDialog->selectedFiles();
	}

	while (i < fileNames.size())
	{
		ui.textBrowser->append(fileNames[i]);
		i++;
	}


}

//清空按钮
void ReName::on_pushButton_Clear_clicked(){
	ui.textBrowser->clear();
}

//开始更改按钮
void ReName::on_pushButton_Start_clicked(){
	QString m_tail;
	QString m_path;
	QString n_point = ".";
	int m_index;
	int i = 0;
	int m_ok = 1;
	int m_ok_1 = 1;
	m_tail = ui.lineEdit->text();
	QMessageBox msgBox_good;   // 生成对象

	if (ui.checkBox->isChecked())
	{
		while (i < fileNames.size())
		{
			m_path = fileNames[i];
			m_path += n_point;
			m_path += m_tail;
			bool OK = QFile::rename(fileNames[i], m_path);
			if (!OK)
				m_ok = 0;
			i++;
		}
		if (m_ok)
		{
			msgBox_good.information(NULL, "Tip!", "Success!");    // 设置文本
		}
		else
		{
			msgBox_good.information(NULL, "Tip!", "Fail!");    // 设置文本
		}
	}
	else
	{
		while (i < fileNames.size())
		{
			m_path = fileNames[i];
			m_index = m_path.indexOf(n_point);
			m_path = m_path.replace(m_index + 1, 65535, m_tail);
			bool OK = QFile::rename(fileNames[i], m_path);
			if (!OK)
				m_ok_1 = 0;
			i++;
		}
		if (m_ok_1)
		{
			msgBox_good.information(NULL, "Tip!", "Success!");    // 设置文本
		}
		else
		{
			msgBox_good.information(NULL, "Tip!", "Fail!");    // 设置文本
		}
	}

	//qDebug() << m_path << endl;
	//qDebug() << m_index << endl;
}



void ReName::dragEnterEvent(QDragEnterEvent*event){
	//接受拖动。
	event->acceptProposedAction();
}

//放下事件
void ReName::dropEvent(QDropEvent*event){
	int i = 0;
	int a = 0;
	fileNames.clear();
	const QMimeData*qm = event->mimeData();//获取MIMEData
	//qm->urls()[0].toLocalFile();//.toLocalFile()是获取拖动文件的本地路径。
	a = qm->urls().size();
	while (i<a)
	{
		fileNames.append(qm->urls()[i].toLocalFile());
		ui.textBrowser->append(fileNames[i]);
		i++;
	}
	
	
	
}
rename.h

#ifndef RENAME_H
#define RENAME_H

#include <QtWidgets/QMainWindow>
#include "ui_rename.h"
#include<QDragEnterEvent>
#include<QMimeData>
#include<QDropEvent>
#include<QUrl>

class ReName : public QMainWindow
{
	Q_OBJECT

public:
	ReName(QWidget *parent = 0);
	~ReName();
	QStringList fileNames;

private:
	Ui::ReNameClass ui;
	void dragEnterEvent(QDragEnterEvent*event);//拖动进入事件
	void dropEvent(QDropEvent*event);


private slots:
	void on_pushButton_Open_clicked();
	void on_pushButton_Clear_clicked();
	void on_pushButton_Start_clicked();
};

#endif // RENAME_H

完整代码我上传了gitee码云,地址如下:

文件后缀批量修改: 文件后缀名的批量修改 (gitee.com)

或者不会用码云,我也上传了csdn,大佬不差积分可以看看:

ReName.rar批量修改文件后缀名-C++文档类资源-CSDN文库

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 13:48:12  更:2022-01-08 13:49:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:45:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码