当前位置:首页 » 编程语言 » c语言文件更名
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言文件更名

发布时间: 2022-04-20 18:11:41

c语言文件重命名

#include<stdio.h>
int main()
{
rename([老名字],[新名字]);
return 0;
}

⑵ 用C语言怎么改文件名

我告诉你一个很简单的方法
你加头文件#include<stdlib.h>
在语句中写system("ren
qq.txt
ww.txt");
如果文件不在程序目录下,就在文件名那里加路径就可以了,但路径中的单斜杠(\)要写成双斜杠(\\);
如system("ren
c:\\qq.txt
ww.txt")
如果你要用字符串来命名文件名。就用这个函数strcat()函数来把字符串接起来就可以了,在、前面加头文件#include<string.h>.
如上面的列子可以这么写:
char
a[10]="ww.txt";//这是你要改成的文件名。
char
b[20]="ren
c:\\qq.txt
";
strcat(b,a);//这里把a、b字符串接起来,经过这里b就等于"ren
c:\\qq.txt
ww.txt";了

//下面直接又调用
system(b);//因为字符串b
经过和a连接后就是整个你需要填进的参数了。

⑶ 如何使用C语言进行文件的重命名及删除操作

在<stdio.h>包里有两个函数可以满足你的要求:
注意,这两个函数操作的文件必须要关闭,否则会执行失败,如果失败,执行完成后可以通过比较errno的值来确定失败原因.
重命名:
int rename(const char *oldname, const char *newname);
参数解释:
oldname:原文件名
newname:新文件名(可以指定全局路径来移动文件)
返回值:
0:成功
-1:失败,并将全局变量errno置为错误码

删除:
int remove(const char *filename);
参数解释:
filename:要删除的文件名
返回值:
0:成功
-1:失败,并将全局变量errno置为错误码

⑷ 用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语言编程里面修改源文件名字

C修改文件名:使用rename函数。
rename函数:功能描述:改变文件的名称或者位置,如果目标已存在,将被自动覆盖。用法:#include<stdio.h>intrename(constchar*oldpath,constchar*newpath);参数:
oldpath:旧文件名。newpath:新文件名或者新位置。
具体可以分以下2种情况:
1、修改单个文件
直接使用rename即可。
2、批量修改文件(如:按一定规则修改某目录下所有文件)
需要使用opendir遍历目录,然后修改该目录下文件。下面提供一个简单的例子。
voidModFilesName(constchar*pcszPath)
{
charszPathFile[1024]={0};//路径+文件名
DIR*dir_p;
structdirent*direntp;
structstatentryInfo;
//文件目录不存在,则创建
if(stat(pcszPath,&entryInfo)<0)
{
printf("Autocreatefolder:%s ",pcszPath);
mkdir(pcszPath,0755);
}

if((dir_p=opendir(pcszPath))==NULL)
{
return;
}
while((direntp=readdir(dir_p))!=NULL)
{
//组合完整路径
sprintf(szPathFile,"%s/%s",pcszPath,direntp->d_name);

//判断文件是否是目录
if(lstat(szPathFile,&entryInfo)==0)
{
if(S_ISDIR(entryInfo.st_mode))
{
continue;//忽略目录
}

rename(szPathFile,你要修改成的文件名);
}
}//while(...

closedir(dir_p);
}

推荐一片文章:http://blog.chinaunix.net/uid-7525568-id-251530.html

希望能帮助到你,你的好评是我前进的动力!谢谢!

⑹ 如何更改C语言的文件名(如下图)

点击菜单栏上的文件按钮,可以看到另存为,可以把程序文件存成其他的名字。
还有一个方法是,关闭vs,然后找到工程文件夹,找到 练习.c,然后点右键,选择重命名即可。

⑺ 用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语言进行文件的批量重命名

这个简易的 按照你的方法改名的程序
在UNIX下测试可用
如果想在windows下用的话 可以用dev c++编译
#include <stdio.h>
#include <unistd.h>
#include <dirent.h>

int main(int argc, char **argv)
{
DIR *dirp;
struct dirent *dirt;
char dir_name[100];
int file_count=1; //file_count为计数.

if (argc != 2){
printf("argument miss\n");
exit(1);
}

if ((dirp = opendir(argv[1])) ==NULL){
printf ("open dir %s failed\n",argv[1]);
exit(1);
}
chdir(argv[1]);

while ( (dirt = readdir(dirp)) != NULL){
if ((strcmp(dirt->d_name,"..") !=0) && (strcmp(dirt->d_name,".")!=0)){
memset(dir_name, 0, sizeof(dir_name));
strcpy(dir_name, dirt->d_name);
sprintf(dir_name + strlen(dirt->d_name), "_%d", file_count++);
if (rename(dirt->d_name, dir_name) < 0){ //dir_name 为新的命名
printf("rename failed\n");
exit(1);
}
}
}

return 0;
}

原理挺简单 你输入一个文件夹作为参数 然后程序就打开这个文件夹遍历这个文件夹里的文件,把这个文件的名字取出来后面加上 "_计数" 用rename 重新命名就行了.

⑼ 怎么用C语言对一个文件夹内的所有文件改名

/////////////////////////////////////////////////////
// char dir[] = "d:\\test\\";
// RenameAnyFiles(dir);
/////////////////////////////////////////////////////
void RenameAnyFiles(const char *dir)
{

WIN32_FIND_DATA finder;
HANDLE hFileFind;
char search[MAX_PATH];
strcpy(search, dir);
strcat(search, "*.*");

hFileFind = FindFirstFile(search, &finder);

if (hFileFind != INVALID_HANDLE_VALUE)
{
do
{
char path[MAX_PATH];
char newname[MAX_PATH];
strcpy(path, dir);
strcat(path, finder.cFileName);
strcpy(newname, dir);

strcat(newname, finder.cFileName);
strcat(newname, ".bak");
AfxMessageBox(newname);

if (!(finder.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
MoveFile(path, newname);

} while (FindNextFile(hFileFind, &finder) != 0);

FindClose(hFileFind);
}
}

⑽ 用C语言编写一个为文件改名的程序

Linux下还是Windows下。Linux下最简单是执行shell语句,比如move指令,windows下游rename函数,比如MSDN上的一个例子:
#include <stdio.h>

void main( void )
{
int result;
char old[] = "RENAMER.OBJ", new[] = "RENAMER.JBO";

/* Attempt to rename file: */
result = rename( old, new );
if( result != 0 )
printf( "Could not rename '%s'\n", old );
else
printf( "File '%s' renamed to '%s'\n", old, new );
}