很久很久以前的一个小程序------批量文件的重命名emilmatthew@126.com
08/09/08
这个小程序是以前为了做测试时用的,它的功能很简单,就是将一堆命名无序的文件,按照你的需求进行顺序排列:如1.jpg,2.jpg,3.jpg...等。
原理很简单:
1.先扫描一个文件夹的所有文件,将文件名放于一个数组中。
int getPicFileNames(char* searchDir)
{
_finddata_t tempFileInfo;
long searchHandle;
char suffix[4];
//assert.
if(searchDir==NULL)
{
fprintf(stderr,"in parseDir,pass in filePath is null\n");
return -1;
}
fprintf(stdout,"%s \n",searchDir);
//change dir
_chdir(searchDir);
//get search handle
searchHandle=_findfirst("*",&tempFileInfo);
if(searchHandle==-1)//if no file in this directory
{
printf("no such directory.");
return -1;
}
else
{
gTotalFileNum=0;
//fprintf(stdout,"read in bmp files.\n");
do
{
//IF CURRENT FILE IS A DIRECTORY
if((tempFileInfo.attrib&_A_SUBDIR))
{
}
else //IF IT IS A REAL FILE,PARSE IT
{
if(strlen(tempFileInfo.name)<=3)
continue;
else
{
suffix[0]=tolower(tempFileInfo.name[strlen(tempFileInfo.name)-3]);
suffix[1]=tolower(tempFileInfo.name[strlen(tempFileInfo.name)-2]);
suffix[2]=tolower(tempFileInfo.name[strlen(tempFileInfo.name)-1]);
suffix[3]='\0';
if(!(strcmp(suffix,"gif")==0||strcmp(suffix,"jpg")==0||strcmp(suffix,"png")==0||strcmp(suffix,"mp3")==0||strcmp(suffix,"wma")==0))
//filter the file not belong to bmp continue;
}
strcpy(picFileSuffix[gTotalFileNum],suffix);
strcpy(gBMPFiles [gTotalFileNum],tempFileInfo.name);
gTotalFileNum++;
}
}
while(_findnext(searchHandle, &tempFileInfo)!=-1);
//search the next item, file or directory
}
_findclose(searchHandle);//VERY IMPORTANT.
return 0;
}
2.将刚才扫描到的文件,按先后顺序,把一个原文件的所有字节输出到另一个文件中(COPY),并重命名文件名。
int renameFileNames()
{
int i;
long j,len;
_chdir("..\\");
//------out file list-----
if((outfileNameList=fopen("outfileNameList.txt","wb"))==NULL)
{
printf("open outfileNameList error.\n");
return -1;
}
for(i=0;i<gTotalFileNum;i++)
{
printf("now process:%s \n",gBMPFiles[i]);
//-----INPUT SESSION-------------------
_chdir(rawPicDocuAdd);
strcpy(inputFileName,gBMPFiles[i]);
//open original file
if((inputFile =fopen(inputFileName ,"rb"))==NULL)
{
printf("open in file error.\n");
continue;
}
j=0;
while(fscanf(inputFile,"%c",&cachePool[j])!=EOF)
{
j++;
}
len=j;
fclose(inputFile);
//--------------------------------------
//------OUPUT SESSION-------------------
_chdir("..\\");
_chdir(finePicDocuAdd);
strcpy(outputFileName,outFileNameSuffix);
strcat(outputFileName,intToStr(i));
strcat(outputFileName,".");
strcat(outputFileName,picFileSuffix[i]);
fprintf(outfileNameList,"%s\r\n",outputFileName);
//open original file
if((outputFile =fopen(outputFileName,"wb"))==NULL)
{
printf("open out file error.\n");
continue;
}
for(j=0;j<len;j++)
{
fprintf(outputFile,"%c",cachePool[j]);
}
fclose(outputFile);
_chdir("..\\");
//--------------------------------------
}
fclose(outfileNameList);
return 0;
}
几点说明
1)程序是用VC6.0编译的。
2)未经命名的文件应放于变量rawPicDocuAdd所对应的文件夹中,而按序命名的文件则放于finePicDocuAdd中,
3)被扫描的文件的格式是可以自定义的,参程序的118行。
4)cachePool是用来临时存放未经整理文件的二进制的数据的(感觉这个有些多余
)。
5)outFileNameSuffix指的是输出文件名的前缀,你可以修改它,如0809等。
6)内存有些小泄漏,你发现了吗?
嘿嘿,源码下载时间到了:
http://www.topven.com/labs/Cpp/080908/pic_name_chg_app.rar
分享到:
相关推荐
批量文件重命名-批处理
在提供的压缩包中,包含了一个名为"妖眼批量重命名.exe"的可执行文件,这很可能是该文件管理小程序的主程序。运行这个文件,用户就可以体验到上述的批量重命名功能。不过,为了确保安全,建议在下载任何可执行文件...
芝麻文件重命名软件是一款专业的重命名软件,支持文件和文件夹批量重命名,一键插入、替换、删除文件名指定字符,给文件名称添加编号、序号,快速修改文件的修改时间、创建时间、后缀名;查看文件属性,修改文件创建...
批量重命名小软件,vb编写的,----------------------------------------------
批量图片文件重命名是一个典型的例子,它能帮助用户高效地整理大量的图片资源。在这个程序中,我们主要讨论的是如何利用工具或编程技巧实现对无规律的jpg格式图片进行批量重命名。 首先,批量重命名通常涉及到两个...
今天给大家介绍一款工具,“优速文件重命名”,可以让你轻松管理文件夹,让你不会再有杂乱的感觉。批量重命名你的文件夹,让你的文件夹按照统一的命名方式排序! 如果能帮助到你,请点赞收藏哦! 工具软件下载地址...
用BAT写的重命名工具,拖动要重命名的文件到bat文件上就可以。也可以结合Qttabar等其他软件来使用。 --------------------示例:"icon_001.jpg"="icon_"+"001"+".jpg" --------------------编号示例1: "0000" =》...
文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件批量重命名文件...
以下是一个基本的批处理脚本示例,用于实现批量随机重命名: ```batch @echo off setlocal enabledelayedexpansion set /a count=1 for %%i in (*) do ( set /a random=!random!%%10000 ren "%%i" "!count!_!...
matlab小程序,可字定义命名方式批量文件重命名、后缀名
文件批量重命名软件-实用版极速稳定
总的来说,这个C++编写的文件批量重命名程序是一个实用工具,它结合了C++的高效编程特性与文件系统操作,为用户提供了一种自动化解决方案,尤其适用于需要频繁整理和重命名大量文件的场景。通过深入理解C++的I/O、...
VB程序实例-批量重命名文件.zip
【标题】"文件批量重命名程序2(C++编写)"揭示了这是一个使用C++编程语言编写的软件应用,其核心功能是批量处理文件的重命名操作。在计算机科学领域,批量重命名文件是一项常见的需求,尤其对于处理大量数据、图片...
例如,“深蓝文件批量重命名工具”是一个常见的选择,如压缩包中的"深蓝文件批量重命名工具.exe"所示。这类工具通常提供丰富的重命名规则,包括但不限于数字递增、添加前缀后缀、替换字符、改变文件扩展名等。 使用...
资源名称:Python-文件重命名-自定义添加文字-重命名 类型:windows—exe可执行工具 环境:Windows10或以上系统 功能: 1、点击按钮 "源原文"【浏览】表示:选择重命名的文件夹 2、点击按钮 "保存文件夹"【浏览】...
批量重命名文件能够极大地提高工作效率,避免手动一个接一个地更改文件名,尤其当需要处理大量文件时。下面我们将深入探讨批量重命名文件的相关知识点。 首先,我们来了解批量重命名的基本概念。批量重命名是指通过...
本项目是基于C#语言和WPF技术实现的一个简单而实用的批量文件重命名工具。它具有以下几个特点: 1. **解压即用**:下载解压后,无需安装,直接运行即可开始使用,方便快捷。 2. **小巧精悍**:项目包含的文件数量...
"批量文件重命名工具.zip" 是一个压缩包,包含了能够帮助用户一次性修改多个文件名称的实用程序及相关组件。这个工具主要适用于需要对大量文件进行统一命名格式调整或添加特定前缀后缀的情况,例如整理照片、音乐库...
在IT领域,尤其是在日常文件管理工作中,批量文件和文件夹重命名是一项常见且重要的任务。批量文件-文件夹重命名工具就是为了满足这一需求而设计的高效解决方案。它可以帮助用户节省大量时间,尤其当处理大量文件时...