最近在做一个项目,需要对一批文件进行批量重命名操作,百度了一下,下载到的几个工具感觉不太容易使用。
于是自己用VS2010做了一个。
界面如下图:
下载地址: (源代码+详细注释版)
部分关键代码:
// LBatchRenameDlg.h : 头文件
//
#pragma once
#include "PictureButton.h"
#include "afxwin.h"
#include <vector>
using namespace std;
#pragma warning(disable:4705)
// CLBatchRenameDlg 对话框
class CLBatchRenameDlg : public CDialogEx
{
// 构造
public:
CLBatchRenameDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_LBATCHRENAME_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedSelectFolder();
afx_msg void OnBnClickedConfirmTransfer();
private:
CPictureButton m_btnAdvancedSetting;// 本来是想做个“高级功能”按钮,最后还是换成了一个超链接
CPictureButton m_btnSelectFolder; // 选择文件的按钮(继承的CButtonST类,方便操作)
CComboBox m_comboNum; // combo控件选择框的控制变量
CString m_sFormat; // 文件名格式
CString folderPath; // 用户选择的文件夹
CListBox m_listOldFile; // ListBox控件,左下角的原文件名
CListBox m_listNewFile; // 右下角的新文件名
vector<int> iFailedVec; // 重命名失败的文件编号
public:
void ScanFolder(void);
afx_msg void OnCbnSelchangeCombo1();
void UpdateFormat(void);
afx_msg void OnEnChangeFormat();
void UpdateNewFileNameList(void);
afx_msg void OnBnClickedAdvancedSetting();
};
下面是Dlg的cpp文件内容:
// LBatchRenameDl