㈠ 用C语言编程修改文件名(C++也行)
麻烦在文件名允许有空白和一些与C语言有冲突的特殊符号。如果没有上述情况可以这样写:(1)通过位置参数传入 老扩展名 和 新扩展名void main(int argc, char *argv[]){}命令行: my_rename.exe jpeg jpg程序名在 argv[0]里,"jpeg" 在 argv[1]里,jpg 在 argv[2]里了l2 = strlen(argv[1]); // 老扩展名长度(2) 通过char command[120],namelist[]="all.lis";sprintf(command,"DIR/B/A-D/OD *.%s > %s", argv[1],namelist);system(command);取得所有要换名的文件名字列表,存放在all.lis文件里,一个文件名一行。(3)打开 all.lis 文件,FILE *flist;if ( (flist = fopen(namelist,"r") ) == NULL ) { printf("\007Cann't open work file: %s ", namelist);exit(1);};一行一行读入:char current_file_name[64],new_name[64];while ( fgets( current_file_name, 64, flist) !=NULL ) { 处理};(4)while 循环 处理:strcpy(new_name,current_file_name);l = strlen(new_name); // 文件名全长strncpy(&new_name[0]+(l-l2),"\0",1); // 文件基本名,含点号,不含扩展名strcat(new_name,argv[2]); // 新文件名sprintf(command,"REN %s %s",current_file_name,new_name); // 换名命令system(command); // 执行换名完整程序:#include <stdio.h>#include <stdlib.h>FILE *flist;void main(int argc,char * argv[]) { int l,l2;char command[240],namelist[]="all.lis"; char current_file_name[64],new_name[64]; if(argc < 3) {printf("\007Usage: %s old_ext new_ext\n",argv[0]);printf("For example: %s jpeg jpg\n",argv[0]);exit(0);}l2 = strlen(argv[1]);sprintf(command,"DIR/B/A-D/OD *.%s > %s", argv[1],namelist); system(command); if ( (flist = fopen(namelist,"r") ) == NULL ) { printf("\007Cann't open work file: %s ", namelist);exit(1); }; while ( fgets( current_file_name, 64, flist) !=NULL ) { strcpy(new_name,current_file_name); l = strlen(new_name); strncpy(&new_name[0]+(l-l2-1),"\0",1); strcat(new_name,argv[2]); strncpy(¤t_file_name[0]+l-1,"\0",1);sprintf(command,"REN %s %s", current_file_name, new_name); system(command); }; fclose(flist);exit(0);}
㈡ 用C语言批量更改文件名
#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>/*int to_iconv(char *in,size_t in_bytes,char *out,size_t out_bytes,const char *from,const char *to)*/int to_iconv(char *in,char *out,size_t out_bytes,const char *from,const char *to){iconv_t cd;size_t in_bytes=strlen(in);//size_t out_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);return 0;}void read_and_iconv(char *path,const char *from,const char *to){DIR *dirp;struct dirent *dir;struct stat buf;char temp[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 %s to %s\n",dir->d_name,temp);stat(temp,&buf);if(S_ISDIR(buf.st_mode)) //判断当前读取的文件是否为文件夹{read_and_iconv(temp,from,to); //如果是则递归处理chdir(".."); //处理完成后一定要记得返回上一层目录哦,不然其它文件就无法处理了}}closedir(dirp);}int main(int argc,char **argv){read_and_iconv(argv[1],argv[2],argv[3]);/*第一个参数是要转换的文件夹所在的文件夹名称*第二个参数是文件名称所使用的编码(这里为GBK)*第三个参数是要转换成何种编码(这里为UTF-8)*/return 0;}
㈢ 用C语言怎么改文件名
我告诉你一个很简单的方法你加头文件#include<stdlib.h>在语句中写system("renqq.txtww.txt");如果文件不在程序目录下,就在文件名那里加路径就可以了,但路径中的单斜杠(\)要写成双斜杠(\\);如system("renc:\\qq.txtww.txt")如果你要用字符串来命名文件名。就用这个函数strcat()函数来把字符串接起来就可以了,在、前面加头文件#include<string.h>.如上面的列子可以这么写:chara[10]="ww.txt";//这是你要改成的文件名。charb[20]="renc:\\qq.txt";strcat(b,a);//这里把a、b字符串接起来,经过这里b就等于"renc:\\qq.txtww.txt";了。//下面直接又调用system(b);//因为字符串b经过和a连接后就是整个你需要填进的参数了。
㈣ C语言批量修改文件名
这个东西用批处理来做可能要麻烦一些,因为批处理对字符串的处理能力不是很强,不过能做是肯定的。这个东西用VB或者MFC来做非常简单。
㈤ C\C++ 如何实现最简单的改文件名~~~!!!
BOOL MoveFile( LPCTSTR lpExistingFileName, // file name LPCTSTR lpNewFileName // new file name ); 参数说明 lpExistingFileName 一个存在的文件或者文件夹字符串指针 lpNewFileName 一个还没存在的文件或者文件夹的字符串指针 返回值 如果成功调用 返回非0 失败 返回0
㈥ 怎么用C语言更改一个已知文件的扩展名
修改文件扩展名,可要调用操作系统提供的API函数,比如Windows上的MoveFile(),也可以直接调用cmd中已提供的重命名命令——rename。下面的示例代码,调用rename命令来重名命文件名。#include <stdio.h>#include <stdlib.h>#include <string.h>int main(int ac, char *pav[]){if (ac!=3) {printf("程序名 要重命名的文件路径 新的文件名\n");printf("示例:test.exe 1.txt 2.bat\n");return 0;}if (access(pav[1], 0) !=0) {printf("不存在该文件\n");return 0;}char szcmd[256] = "cmd /c rename ";strcat(szcmd, pav[1] );strcat(szcmd, " ");strcat(szcmd, pav[2]);system(szcmd);return 0;}
㈦ 文件名怎么改
方法有很多,首先要确保文件夹选项中的‘隐藏已知文件类型的扩展名’的不要勾选。回这样可以确保你能答看到文件的扩展名,也有说后缀的。这里给你说两种方法,只给你说在WINDOWS下修改文件名的方法。1 右键单击想要修改文件名的文件,在弹出的菜单中选择‘重命名’。2 左键单击想哟修改的文件,然后再单击一次要修改的文件名部分(注意是文件名的框内),这个时候你会看到文件名部分已经变为蓝色可选,这个时候就可以修改了。注意文件名的后缀,尽量不要改后缀。除非你有特殊要求。
㈧ 如何在C语言编程里面修改源文件名字
修改文件名,可要调用操作系统提供的API函数,比如Windows上的MoveFile(),也可以直接调用cmd中已提供的重命名命令——rename。下面的示例代码,调用rename命令来重名命文件名。
#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(intac,char*pav[]){if(ac!=3){printf("程序名要重命名的文件路径新的文件名");printf("示例:test.exe1.txt2.txt");return0;}if(access(pav[1],0)!=0){printf("不存在该文件");return0;}charszcmd[256]="cmd/crename";strcat(szcmd,pav[1]);strcat(szcmd,"");strcat(szcmd,pav[2]);system(szcmd);return0;}
㈨ C语言怎么修改文件信息
把文件里面数据读出来,在内存里面改掉,再把改后的数据写回去c操作文件没有修改的方式,只有追加,不过也不适合你的需最常用的就是这样,先读,改 再重写
㈩ 如何更改C语言的文件名(如下图)
点击菜单栏上的文件按钮,可以看到另存为,可以把程序文件存成其他的名字。还有一个方法是,关闭vs,然后找到工程文件夹,找到 练习.c,然后点右键,选择重命名即可。
未经允许不得转载:山九号 » c修改文件名|文件名怎么改