C实现文件名批量修改

来源:互联网 发布:诸城明诚学校网络平台 编辑:程序博客网 时间:2024/06/04 18:18

以下实现将实现批量修改文件名,即同时重命名多个文件

#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(){    const char dir[512] = "D:\\work\\工作\\三区\\work\\北京市_三区_有色冶金设计研究院\\北京市_三区_有色冶金设计研究院11号楼\\";    const a = "心_";    const b = "心";    char filename[512] = {0}, *p, name_temp[512] = {0};    char new_name[512] = {0}, old_name[512] = {0};    char tmp[512] = "COPY ";    char name_tmp[512] = {0};    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(p = strstr(entry-> d_name, a))            {                strcpy(name_temp, entry -> d_name);                change_str(name_temp, a, b);                strcat(old_name, entry -> d_name);                strcat(new_name, name_temp);                if(rename(old_name, new_name) == 0)                   printf("%s\n", name_temp);            }            strcpy(new_name, dir);            strcpy(old_name, dir);            strcpy(name_tmp, "\0");        }    }    system("PAUSE");}












原创粉丝点击