批量修改文件名

来源:互联网 发布:unity3d apk 资源提取 编辑:程序博客网 时间:2024/04/29 02:46
/* 批量修改文件后缀 */ #include <stdio.h>#include <dos.h>#include<string.h> #include<Windows.h>int main(){    /* 统记有多少文件被修改 */     int sum = 0;        /* 需要的文件名后缀 */    char *hz = ".mp3";    /* /s: 显示指定目录和所有子目录中的文件。不加 /s 默认只显示当前文件夹下的,不包含子文件夹 */     /* /b: 显示指定目录和所有子目录中的文件。 */    system("dir /s /b > filelist.txt");/*这是全部文件,包括子目录*/    //system("dir *.txt /b > filelist2.txt"); /*当前目录下的所有txt文件,不包括子目录*/    //打开文件     //system("filelist.txt");    FILE * fp = fopen("C:\\Users\\dell\\Desktop\\格林童话\\01\\filelist.txt","r");/*读取并进行处理*/        if(fp == NULL)    {        printf("文件打开失败!");        return 0;    }    else    {        // 按行读取,最后加上后缀.        while(!feof(fp))         {            char oldname[1024] = {0};            char newname[1024] = {0};            fgets(oldname,1024,fp);            int length = strlen(oldname);                       /* 把读到字符串最后的回车 换成 \0 表示字符串的结束标示 */             oldname[length-1] = '\0';               /* strlen(oldname)>1 如果这一行没有读到字符串则不进行后缀修改。其它几个判断是防止修改程序自身的文件 */             if(strlen(oldname)>1 && !strstr(oldname,".exe") && !strstr(oldname,".mp3") && !strstr(oldname,".txt") && !strstr(oldname,".cpp"))                {   /* 在字符串后面增加需要修改的后缀,这儿把文件修改成 .mp3格式 */                sprintf(newname,"%s%s",oldname,hz);                rename(oldname,newname);                puts(newname);                      sum++;            }                       }    }    printf("共有:%d 文件被修改。\n",sum);    /*处理*/    fclose(fp);    system("pause");    return 0;}


以上代码是修改文件名后缀的小代码。

0 0