APP下载

基于VC++6.0的文件名批量转换

2007-07-05汤晓乐

智能计算机与应用 2007年3期
关键词:批量文件夹按钮

汤晓乐 杨 栋

摘要:提出了一种能够对大量文件名进行批量转换。从而提高处理文档效率的方法。

关键词:VC文件名批量转换

中图分类号TP311.1

文献标识码B文章编号:1002-2422(2007)03-0024-02

使用电脑时一定会遇到文件操作的问题,如对大量文件执行复制、删除、更改文件名等操作,这些问题如果仅靠Windows操作系统提供的功能来解决,费时费力。本文就提出了一种用VC实现的对文件名进行批量处理的方法,可以方便的实现对大量文件的操作。

1实现原理

本文要实现的是对大量同类文件进行按数字排序。首先通过手工输入或者点击浏览按钮来实现文件夹的选择;其次用CFileFind类来确定其中有多少文件;最后来对每个文件进行转换并给出一个txt的目录文件。

2具体编程

用Microsoft Visual C++6.0建立一个工程,选择MFCApplication Wizard(exe)→Dialog Based。

2.1建立一个的界面

本文主要讲述的是重命名这一功能,其中涉及到有几个控件。

可以手工输入文件路径以及文件格式,也可以通过点个文件来达到输入路径功能。当点击重命名按钮就可以实现文件名的以数字形式的批量转换,而且会将文件的对应目录文件以文本文件形式保存。

2.2添加函数

void CBatDig::OnRename()

{

// TODO:Add your control notification handler code here CString strPath,strFilter,srcTitle,src,srcFile,dstFile.dstFileTitle;

int i=1 ,iFileNum=1;

CFile myFile,newFile;

GetDlgItemText(IDC_EXT,strFilter);

判断文件夹是否为空

if(strPath.IsEmpty())

{

MessaseBox(“请先选择要批量转换文件所在文件夹!”,“警告!”);

return;

}

在该文件夹内创建目录文件

src=strPath+“*.”+strFilher;

CString list=strPath+“目录.txtS”;

if(myFile.Open(list,CFile:modeCreat ICFie:modeReadWrite,O)==0)return;

CFileFind tempFind;

BOOL isFound=(BOOL)tempFind.FindFile(SRC);

确定该文件夹内要处理的有多少个文件

while(isFound)

{

isFound=(BOOL)tempFind.FindNextFile():

if(tempFind.IsDirectory())

continue;

iFileNum++;

}

进行文件名的转换,以文件数定转换后的文件名,如果有9个文件,则以1-9的形式命名。

如果是更多.如有99个文件,则为01-99的形式

isFound=(BOOL)tempFind.gindFile(src);

while(isFound&&i

{

isFound=(BOOL)tempFind.FindNextFile();

if(tempFind.IsDirectory())

confinue;

srcFile=tempFind.GetFilePath();

srcTitle=empFind.CetFileTide();

if(iFileNum<10)

{

dstFileTitle.Format(“%d”i);

}

else if(iFileNum<100&&iFihNum>9)

{

dstFileTith.Format(“%02d”,i);

}

else if(iFikNum<1000&&iFileNum>99)

{

dstFileTitle.Format(“%03”,j);

}

else if(iFileNum<10000&&iFihNum>999)

{

dstFfleTide.Format(“%04d”,i);

}

else if(iFileNum<100000&&iFileNum>9999)

{

dstFileTith.Format(“%05d”,j);

}

else

{

dstFileTide.Format(“%d”,j);

}

实现转换

dstFile=strPath+dstFileTitle+“,”+strFilter;

MoveFile(srcFile,datFile);

存入目录文件中,每一个初始文件名及其转换后的文件名存为1行

CString in;

in=dstFileTide+srcTitle+“ ”;

myFile.Write(in,in.GetLength());

i++:

SetWindowText(sreFile);

}

关闭myFile,tempFind

myFile.Close();

tempFind.Close();

}

3结束语

用VC实现的文件名的转换,比其仅用Windows操作系统提供的方法快上很多,而且该程序具有很好的可移植性,在其他程序中也可以灵活的使用。

猜你喜欢

批量文件夹按钮
批量提交在配置分发中的应用
Fast Folders,让你的文件夹四通八达
批量下载自己QQ空间上的相册
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
死循环
不容忽视的空文件夹
内心不能碰的按钮
重塑批量集中采购