虽然是c++ 但是算法是一样的。这个程序可以遍历一个目录找到相应文件 然后改成需要的名字 好处是想怎么改就怎么改 比工具强大多了。
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
void main( )
{
//定义变量
WIN32_FIND_DATA FoundFileName; //结果数据 这个function就是把结果存在这里,然后指针一个一个移动读取
HANDLE hFind; //句柄
const TCHAR baseDir[MAX_PATH] = "C:\\Documents and Settings\\cnbot.y\\My Documents\\127small\\www.7starhandbags.com\\img\\products";
TCHAR SW[MAX_PATH];
strcpy(SW,baseDir);
strcat(SW,"\\*");
//搜索
printf("%s\n",baseDir);
hFind = FindFirstFile(SW,
&FoundFileName);
TCHAR filename[MAX_PATH];
// 名字基础 形如:路径+目录+\
strcpy(filename, baseDir ) ; // 拷贝根路径
strcat( filename, "\\" ) ; // 加//
//判断是否找到
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("FindFirstFile failed (%d)\n", GetLastError());
return 0;
}
//找到就 traverse 下一个
else
{
_tprintf (TEXT("The first file found is %s\n"),
FoundFileName.cFileName);
while (FindNextFile(hFind, &FoundFileName) != 0)
{
_tprintf (TEXT(" Next file: %s\n"), FoundFileName.cFileName);
char folder_tmp[MAX_PATH];
strcpy(folder_tmp,filename);
strcat( folder_tmp, FoundFileName.cFileName ) ; // 加目录
strcat( folder_tmp, "\\" ); // 加文件名
for(int i=0;i<14;i++)
{
int result;
char suffixold[10];
char suffixnew[10];
char oldall[MAX_PATH];
char newall[MAX_PATH];
//临时文件名
strcpy(oldall,folder_tmp);
strcpy(newall,folder_tmp);
//后缀弄好
sprintf(suffixold,"%02d",i);
sprintf(suffixnew,"%02d",i);
//临时文件名继续处理
strcat( oldall, suffixold ); // 加文件名
strcat( oldall, "s.jpg" ); // 加文件名
strcat( newall, "replica_" ); // 加文件名
strcat( newall, suffixnew ); // 加文件名
strcat( newall, ".jpg" ); // 加文件名
// printf("%s\n",oldall);
// printf("%s\n",newall);
result = rename( oldall , newall );
if ( result == 0 )
puts ( "File successfully renamed" );
else
perror( "Error renaming file" );
}
} //while
FindClose(hFind);
}
}
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
void main( )
{
//定义变量
WIN32_FIND_DATA FoundFileName; //结果数据 这个function就是把结果存在这里,然后指针一个一个移动读取
HANDLE hFind; //句柄
const TCHAR baseDir[MAX_PATH] = "C:\\Documents and Settings\\cnbot.y\\My Documents\\127small\\www.7starhandbags.com\\img\\products";
TCHAR SW[MAX_PATH];
strcpy(SW,baseDir);
strcat(SW,"\\*");
//搜索
printf("%s\n",baseDir);
hFind = FindFirstFile(SW,
&FoundFileName);
TCHAR filename[MAX_PATH];
// 名字基础 形如:路径+目录+\
strcpy(filename, baseDir ) ; // 拷贝根路径
strcat( filename, "\\" ) ; // 加//
//判断是否找到
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("FindFirstFile failed (%d)\n", GetLastError());
return 0;
}
//找到就 traverse 下一个
else
{
_tprintf (TEXT("The first file found is %s\n"),
FoundFileName.cFileName);
while (FindNextFile(hFind, &FoundFileName) != 0)
{
_tprintf (TEXT(" Next file: %s\n"), FoundFileName.cFileName);
char folder_tmp[MAX_PATH];
strcpy(folder_tmp,filename);
strcat( folder_tmp, FoundFileName.cFileName ) ; // 加目录
strcat( folder_tmp, "\\" ); // 加文件名
for(int i=0;i<14;i++)
{
int result;
char suffixold[10];
char suffixnew[10];
char oldall[MAX_PATH];
char newall[MAX_PATH];
//临时文件名
strcpy(oldall,folder_tmp);
strcpy(newall,folder_tmp);
//后缀弄好
sprintf(suffixold,"%02d",i);
sprintf(suffixnew,"%02d",i);
//临时文件名继续处理
strcat( oldall, suffixold ); // 加文件名
strcat( oldall, "s.jpg" ); // 加文件名
strcat( newall, "replica_" ); // 加文件名
strcat( newall, suffixnew ); // 加文件名
strcat( newall, ".jpg" ); // 加文件名
// printf("%s\n",oldall);
// printf("%s\n",newall);
result = rename( oldall , newall );
if ( result == 0 )
puts ( "File successfully renamed" );
else
perror( "Error renaming file" );
}
} //while
FindClose(hFind);
}
}
浙公网安备 33010602011771号