使用c++批量复制tif图片并重命名保存到新的文件夹下
时间: 2024-05-03 20:20:00 浏览: 149
C++实现的图片文件批量重命名
4星 · 用户满意度95%
以下是使用C语言批量复制tif图片并重命名保存到新的文件夹下的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char source_folder[100] = "./source/"; // 源文件夹路径,需要复制的tif图片所在文件夹
char target_folder[100] = "./target/"; // 目标文件夹路径,复制后的tif图片将保存在该文件夹下
char filename[100]; // 文件名
char new_filename[100]; // 新的文件名
int count = 1; // 文件计数器
// 打开源文件夹
DIR *dir;
struct dirent *ent;
if ((dir = opendir(source_folder)) != NULL) {
// 循环遍历源文件夹中的所有文件
while ((ent = readdir(dir)) != NULL) {
// 判断文件是否为tif图片
if (strstr(ent->d_name, ".tif") != NULL) {
// 拼接文件路径
strcpy(filename, source_folder);
strcat(filename, ent->d_name);
// 打开源文件
FILE *source_file = fopen(filename, "rb");
if (source_file == NULL) {
printf("Failed to open source file: %s\n", filename);
continue;
}
// 构造新的文件名
sprintf(new_filename, "%s%d.tif", target_folder, count++);
// 打开目标文件
FILE *target_file = fopen(new_filename, "wb");
if (target_file == NULL) {
printf("Failed to create target file: %s\n", new_filename);
fclose(source_file);
continue;
}
// 复制文件内容
int c;
while ((c = fgetc(source_file)) != EOF) {
fputc(c, target_file);
}
// 关闭文件
fclose(source_file);
fclose(target_file);
}
}
closedir(dir);
} else {
printf("Failed to open source folder: %s\n", source_folder);
return 1;
}
printf("Finished copying %d files.\n", count - 1);
return 0;
}
```
在代码中,我们首先定义了源文件夹路径和目标文件夹路径,然后使用`opendir()`函数打开源文件夹,并循环遍历文件夹中的所有文件。对于每个文件,我们判断其是否为tif图片,然后打开源文件和目标文件,复制文件内容并保存到目标文件中,最后关闭文件。在复制文件时,我们使用了`fgetc()`和`fputc()`函数分别读取和写入文件内容。
需要注意的是,我们在复制文件时使用了计数器来生成新的文件名,如果源文件夹中存在同名的tif图片,则后面的文件会覆盖前面的文件。如果需要避免文件名冲突,可以使用其他的命名方式,例如在文件名中加入当前的时间戳等。
阅读全文