论文部分内容阅读
摘 要:提出了一种能够对大量文件名进行批量转换。从而提高处理文档效率的方法。
关键词: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
关键词: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