最近有一个项目需要将同一张图片命名为2个文件,一个以_G结尾,另一个以_W结尾,如下图所示:
以下程序实现上述功能,即将一个路径下的所有以_G结尾的jpg文件复制成对应的以_W结尾的同类型的文件
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<dirent.h>
void change_str(char *str, char *a, char *b)
{
char *p, q[100] = {0};
p = strstr(str, a);
p += strlen(a);
strcpy(q, p);
*(p - strlen(a)) = 0;
strcat(str, b);
strcat(str, q);
}
int main(int axianggc, char *argv[])
{
const char dir[512] = "D:\\work\\工作\\三区\\work\\北京市_三区_有色冶金设计研究院\\北京市_三区_有色冶金设计研究院19号楼\\";
char *filename;
char new_name[128] = {0}, old_name[128] = {0};
char name_temp[128] = {0}, tmp[512] = "COPY ";
DIR *directory_pointer;
struct dirent *entry;
strcpy(new_name, dir);
strcpy(old_name, dir);
if((directory_pointer=opendir(dir))==NULL)
printf( "Error opening \n ");
else
{
while((entry = readdir(directory_pointer)) != NULL)
{
if(filename = strstr(entry-> d_name, "G.jpg"))
{
strcpy(name_temp, entry -> d_name);
change_str(name_temp, "G.jpg", "W.jpg");
strcat(old_name, entry -> d_name);
strcat(new_name, name_temp);
strcat(tmp, dir);
strcat(tmp, old_name);
strcat(tmp, " ");
strcat(tmp, dir);
strcat(tmp, new_name);
printf("%s\n", new_name);
system(tmp);
}
strcpy(new_name, "\0");
strcpy(old_name, "\0");
strcpy(tmp, "COPY ");
}
closedir(directory_pointer);
}
system("PAUSE");
return 0;
}