首页 > 答案 > 知识百科

c怎么写批量修改,批量修改怎么操作

发布人:收集 发布时间:2023-05-24

用C语言批量更改文件名篇1

#include<stdio.h>

#include<sys/types.h>

#include<sys/stat.h>

#include<unistd.h>

#include<dirent.h>

#include<string.h>

#include<iconv.h>

#include<errno.h>

/*intto_iconv(char*in,size_tin_bytes,char*out,size_tout_bytes,

constchar*from,constchar*to)*/

intto_iconv(char*in,char*out,size_tout_bytes,constchar*from,constchar*to)

{

iconv_tcd;

size_tin_bytes=strlen(in);

//size_tout_bytes;

if((cd=iconv_open(to,from))==(iconv_t)-1)

{

perror("iconv_open");

return-1;

}

if(iconv(cd,&in,&in_bytes,&out,&out_bytes)==-1)

{

perror("iconv");

return-1;

}

iconv_close(cd);

return0;

}

voidread_and_iconv(char*path,constchar*from,constchar*to)

{

DIR*dirp;

structdirent*dir;

structstatbuf;

chartemp[512];//用于保存转换后的文件名称

if((dirp=opendir(path))==NULL)//读取文件夹

{

perror("opendir");

return;

}

chdir(path);//进入到该文件夹内部

while(dir=readdir(dirp))//读取该文件夹下所有文件

{

if((strcmp(dir->d_name,".")==0)||(strcmp(dir->d_name,"..")==0))

//过滤掉.以及..文件夹,不然会死循环的

continue;

bzero(temp,sizeof(temp));

to_iconv(dir->d_name,temp,sizeof(temp),from,to);//进行编码转换

rename(dir->d_name,temp);//进行重命名

printf("rename%sto%s\n",dir->d_name,temp);

stat(temp,&buf);

if(S_ISDIR(buf.st_mode))//判断当前读取的文件是否为文件夹

{

read_and_iconv(temp,from,to);//如果是则递归处理

chdir("..");//处理完成后一定要记得返回上一层目录哦,不然其它文件就无法处理了

}

}

closedir(dirp);

}

intmain(intargc,char**argv)

{

read_and_iconv(argv[1],argv[2],argv[3]);

/*第一个参数是要转换的文件夹所在的文件夹名称

*第二个参数是文件名称所使用的编码(这里为GBK)

*第三个参数是要转换成何种编码(这里为UTF-8)

*/

return0;

}

如何用批处理/C语言等对多个文本内容进行批量替换篇2

替换倒是没问题

但是你给出的没有规律啊

#Music(DN_02.ogg)-----playfile("sounds/DN_02.ogg",1);

#SoundGr(0,SE001.ogg)----playfile("sounds/SE001.ogg",1);

这个就是#xxx(文件)------playfile("sounds/文件",1);模式

后面的就看不出来了。。.

[!]替换#Page

这个用变量代换就行

跪求程序设计:写一个批量修改文件名的程序(最好用JAVA,C语言,篇3

publicclassReNameFile{

publicstaticStringpath="输入你要重命名的磁盘或文件夹路径";

publicstaticvoidmain(String[]args){

reName(path);

}

publicstaticvoidreName(StringfilePath){

FilerootFile=newFile(filePath);

if(rootFile.isDirectory()){

Filefiles[]=rootFile.listFiles();

if(files!=null&&files.length>0){

for(inti=0;i<files.length;i++){

Filef=files[i];

if(f.isDirectory()){

reName(f.getAbsolutePath());

}else{

f.renameTo(newFile("输入你要重命名的名字"));//记得将路径也输入

}

}

}

}else{

rootFile.renameTo(newFile("输入你要重命名的名字"));//记得将路径也输入

}

}

}

如果不明白,请继续提问。

C语言如何对文本进行批量修改添加篇4

代码如下:

#include<stdio.h>

#defineMAX20//每行最大字符数

#defineMAX_LINE1000//文件最大行数

charlines[MAX_LINE][MAX];

intmain()

{

inti,count=0;

//打开文件abc.txt

FILE*pf=fopen("d:\\abc.txt","r+");

//读取文件内容到lines中

while(!feof(pf)){

fscanf(pf,"%s",lines[count++]);

}

//移动文件指针到文件开始

fseek(pf,0,SEEK_SET);

//修改文本并保存到文件中

for(i=0;i<count;i++){

fprintf(pf,"12月日期%s号\n",lines[i]);

}

//关闭文件

fclose(pf);

return0;

}运行结果:

C语言写一个批量文件改名器篇5

程序如下:用VC6.0或TC2.0编译使用时,只要将大批要修改的文件的名字放到oldName中,新名字放到newName中即可,此时适当修改MAX的值.#include#include#defineMAX3/*最大的文件数目,每个文件对应一个名字*//*文件的原来名字,这里是当前目录下的,也可以不是当前目录,写绝对路径就可以了,如:D:\abc\aa.txt(前提是该文件存在)*/unsignedchar*oldName[MAX]={"aaa.txt","bbb.txt","ccc.txt"};/*文件改后的名字*/unsignedchar*newName[MAX]={"111.txt","222.txt","333.txt"};main(){inti;intflag=0;for(i=0;i{if(rename(oldName[i],newName[i]))/*改文件名,如果文件不存在就退出*/{printf("找不到原文件\n");flag=1;break;}}if(!flag)printf("改名全部成功\n");getch();}。

C语言写一个批量文件改名器篇6

程序如下:

用VC6.0或TC2.0编译

使用时,只要将大批要修改的文件的名字放到oldName中,新名字放到newName中即可,此时适当修改MAX的值.

#include<stdio.h>

#include<conio.h>

#defineMAX3/*最大的文件数目,每个文件对应一个名字*/

/*文件的原来名字,这里是当前目录下的,也可以不是当前目录,写绝对路径就可以了,如:D:\abc\aa.txt(前提是该文件存在)*/

unsignedchar*oldName[MAX]={"aaa.txt","bbb.txt","ccc.txt"};

/*文件改后的名字*/

unsignedchar*newName[MAX]={"111.txt","222.txt","333.txt"};

main()

{

inti;

intflag=0;

for(i=0;i<MAX;i++)

{

if(rename(oldName[i],newName[i]))/*改文件名,如果文件不存在就退出*/

{

printf("找不到原文件\n");

flag=1;

break;

}

}

if(!flag)

printf("改名全部成功\n");

getch();

}