C++中实现图片重命名可以采用文件操作相关的库函数,如opendir
、readdir
、rename
等。
下面是一份示例代码:
#include <iostream>
#include <dirent.h>
#include <cstring>
#include <cstdio>
using namespace std;
void RenameFile(string oldName, string newName) {
int flag = rename(oldName.c_str(), newName.c_str());
if (flag == 0) {
cout << "Rename Success !" << endl;
} else {
cout << "Rename Failed !" << endl;
}
}
int main() {
string path = "./images";
DIR *dir;
struct dirent *ent;
if ((dir = opendir(path.c_str())) != NULL) {
while ((ent = readdir(dir)) != NULL) {
string fileName = ent->d_name;
if (fileName == "." || fileName == "..") {
continue;
}
string oldName = path + "/" + fileName;
string newName = path + "/new_" + fileName;
RenameFile(oldName, newName);
}
closedir(dir);
} else {
perror("");
return EXIT_FAILURE;
}
return 0;
}
以上代码先定义一个RenameFile
函数,该函数传入的是要修改的文件名和修改后的文件名,函数内部使用系统函数rename
进行文件重命名,如果执行成功输出“Rename Success!”,否则输出“Rename Failed!”。
main
函数中,先定义了要遍历的文件夹路径path
,使用opendir
函数打开该文件夹并遍历文件夹内的所有文件,对于每个文件,先判断其是否为“.”或“..”,如果是则跳过。接着,使用string
将原文件名和新文件名组成完整的路径,借助RenameFile
函数进行重命名。
下面是两个示例:
-
假设当前目录下有一个名为“images”的目录,其中有三个文件分别为“a.jpg”,“b.jpg”和“c.jpg”,要将这三个文件重命名为“new_a.jpg”,“new_b.jpg”和“new_c.jpg”。
c++
int main() {
string path = "./images";
DIR *dir;
struct dirent *ent;
if ((dir = opendir(path.c_str())) != NULL) {
while ((ent = readdir(dir)) != NULL) {
string fileName = ent->d_name;
if (fileName == "." || fileName == "..") {
continue;
}
string oldName = path + "/" + fileName;
string newName = path + "/new_" + fileName;
RenameFile(oldName, newName);
}
closedir(dir);
}
return 0;
} -
假设当前目录下有一个名为“images”的目录,其中有三个文件分别为“a.jpg”,“b.jpg”和“c.jpg”,其中“b.jpg”不需要重命名。
int main() {
string path = "./images";
DIR *dir;
struct dirent *ent;
if ((dir = opendir(path.c_str())) != NULL) {
while ((ent = readdir(dir)) != NULL) {
string fileName = ent->d_name;
if (fileName == "." || fileName == "..") {
continue;
}
if (fileName == "b.jpg") {
continue;
}
string oldName = path + "/" + fileName;
string newName = path + "/new_" + fileName;
RenameFile(oldName, newName);
}
closedir(dir);
}
return 0;
}
在这个例子中,我们加了一个判断条件,如果文件名为“b.jpg”则跳过,不进行重命名操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++中图片重命名实现代码 - Python技术站