c 语言批量修改文件名
时间: 2023-08-29 15:07:28 浏览: 765
你可以使用C语言中的文件操作函数来批量修改文件名。具体步骤如下:
1. 使用`opendir()`打开目录,获取目录句柄。
2. 使用`readdir()`读取目录下的文件列表,通过循环遍历每一个文件。
3. 对于每一个文件,使用`rename()`函数来修改其文件名。
以下是一个示例代码,仅供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
int main(int argc, char *argv[]) {
DIR *dir;
struct dirent *ent;
char old_name[256], new_name[256];
if (argc < 3) {
printf("Usage: %s <dir> <new_suffix>\n", argv[0]);
exit(1);
}
// 打开目录
dir = opendir(argv[1]);
if (dir == NULL) {
perror("opendir");
exit(1);
}
// 遍历目录
while ((ent = readdir(dir)) != NULL) {
// 忽略 . 和 .. 两个特殊目录
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) {
continue;
}
// 构造旧文件名和新文件名
sprintf(old_name, "%s/%s", argv[1], ent->d_name);
sprintf(new_name, "%s/%s%s", argv[1], ent->d_name, argv[2]);
// 修改文件名
if (rename(old_name, new_name) != 0) {
perror("rename");
}
}
closedir(dir);
return 0;
}
```
在上面的示例中,程序会扫描指定目录下的所有文件,将它们的文件名后附上指定的后缀。例如,如果你执行以下命令:
```sh
$ ./rename_files /path/to/dir .txt
```
那么程序会将 `/path/to/dir` 目录下的所有文件名都改为以 `.txt` 结尾的形式。注意,这个程序没有做任何安全检查,如果你不小心将错误的参数传递给它,可能会导致数据的丢失或损坏,所以请谨慎使用。
阅读全文