修改文件的文件名后缀c语言
时间: 2023-09-03 13:15:23 浏览: 298
修改文件名后缀可以使用C语言中的文件操作函数`rename()`。具体实现步骤如下:
1. 使用`rename()`函数修改文件名后缀。
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int result = rename("file.txt", "file.dat");
if(result == 0)
{
printf("文件名修改成功!\n");
}
else
{
printf("文件名修改失败!\n");
}
return 0;
}
```
2. 如果要批量修改文件名后缀,可以使用`opendir()`和`readdir()`函数遍历目录下的所有文件,然后使用`rename()`函数修改文件名后缀。
```c
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
int main()
{
DIR *dir;
struct dirent *ptr;
char path[1024] = "./"; // 文件所在路径
char old_ext[10] = ".txt"; // 原文件后缀
char new_ext[10] = ".dat"; // 新文件后缀
dir = opendir(path);
if(dir == NULL)
{
printf("打开目录失败!\n");
return -1;
}
while((ptr = readdir(dir)) != NULL)
{
if(strcmp(ptr->d_name, ".") == 0 || strcmp(ptr->d_name, "..") == 0)
{
continue;
}
else
{
char *dot = strrchr(ptr->d_name, '.'); // 获取文件后缀
if(dot != NULL && strcmp(dot, old_ext) == 0)
{
char old_name[1024] = "";
char new_name[1024] = "";
sprintf(old_name, "%s%s", path, ptr->d_name); // 原文件名
strncpy(new_name, old_name, strlen(old_name) - strlen(old_ext)); // 新文件名
strcat(new_name, new_ext); // 添加新后缀
int result = rename(old_name, new_name); // 修改文件名
if(result == 0)
{
printf("文件名修改成功:%s -> %s\n", old_name, new_name);
}
else
{
printf("文件名修改失败:%s -> %s\n", old_name, new_name);
}
}
}
}
closedir(dir);
return 0;
}
```
注意事项:
1. 使用`rename()`函数修改文件名后缀时,要保证新的文件名不存在,否则会修改失败;
2. 在使用`readdir()`函数遍历目录下的所有文件时,要注意过滤掉`.`和`..`两个目录项;
3. 在使用`strrchr()`函数获取文件后缀时,要注意判断文件是否含有后缀,否则会出现异常。
阅读全文