C++中图片重命名实现代码

C++中实现图片重命名可以采用文件操作相关的库函数,如opendirreaddirrename等。

下面是一份示例代码:

#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函数进行重命名。

下面是两个示例:

  1. 假设当前目录下有一个名为“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;
    }

  2. 假设当前目录下有一个名为“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技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • 详谈Java中BigDecimal的一个除法异常

    首先,我们需要了解BigDecimal的一个常见问题,就是在进行除法计算时,会发生除不尽或除数为0的情况,导致程序抛出异常。这时候,我们需要采取一些措施来处理这些异常,确保程序的正常运行。 一、问题描述在Java中,我们可以使用BigDecimal来进行高精度计算。在进行除法计算时,如果除不尽或除数为0,会抛出ArithmeticException异常。例如…

    C 2023年5月23日
    00
  • excel表格常用函数技巧大全 excel中最常用的30个函数分享

    “Excel表格常用函数技巧大全 Excel中最常用的30个函数分享”是一个非常实用的指南,能够帮助用户掌握Excel中最常用的函数,提高Excel表格的使用效率。以下是该攻略的详细讲解: 概述 本攻略介绍Excel中最常用的30个函数,包含函数的语法、用途及示例等方面的详细解释,旨在提高用户对Excel函数的认识,提高表格的使用效率。 函数分类 本攻略将这…

    C 2023年5月22日
    00
  • 一文教你Qt如何操作SQLite数据库

    一文教你Qt如何操作SQLite数据库 1. 安装SQLite数据库驱动 在Qt中操作SQLite数据库,需要使用到SQLite数据库驱动。下面介绍如何安装和配置这个驱动。 1.1 下载SQLite 访问 SQLite官网 ,选择最新的预编译二进制文件下载。 1.2 下载SQLite驱动 访问Qt官网的下载页面,选择对应版本的Qt安装程序。这里以Qt 5.1…

    C 2023年5月22日
    00
  • C++程序的执行顺序结构以及关系和逻辑运算符讲解

    让我来为你详细讲解一下C++程序的执行顺序结构以及关系和逻辑运算符讲解的攻略。 C++程序的执行顺序结构 在C++程序中,程序的执行顺序遵循自上而下的顺序结构。也就是说,程序会首先执行第一条语句,然后接着执行第二条语句,以此类推,直到程序执行完所有语句为止。 下面是一个简单的示例,说明C++程序的执行顺序结构: #include <iostream&g…

    C 2023年5月23日
    00
  • c语言与c++基础知识点(必看)

    下面是“c语言与c++基础知识点(必看)”的完整攻略: C语言与C++基础知识点(必看) C语言 数据类型 在C语言中,有基本数据类型(int、char、float、double等)和自定义数据类型(结构体、枚举等)。同时还有指针类型和数组类型。其中,指针类型可以指向任意类型的变量,而数组类型可以存储同一类型的多个变量。 int a = 10; float …

    C 2023年5月23日
    00
  • Win8.1系统在SSD盘安装双系统提示错误代码0xc0000225的故障原因及解决方法

    Win8.1系统在SSD盘安装双系统提示错误代码0xc0000225的故障原因及解决方法 故障原因 当我们在一个SSD盘上安装Win8.1系统的双系统时,有时会遇到以下错误提示: Windows 启动管理器 Windows 检测到计算机的启动配置数据(BCD)缺少必要的文件。 文件位于:»\Windows\system32\winload.efi 错误代码:…

    C 2023年5月24日
    00
  • mac外接显示器没反应怎么办? mac外接显示器无信号原因分析

    Mac外接显示器没反应怎么办? 问题描述 当我们在使用Mac电脑的时候,有时需要将其接入到外接显示器上进行扩展,这样可以提高工作效率,但是有时会遇到显示器无法正常显示出图像的情况,以下就对这个问题进行分析解决。 解决步骤 步骤一:检查连接线 第一步要检查的是连接线是否正确连接。通常外接显示器使用的是HDMI、DVI或者VGA接口,所以需要确保连接线与显示器接…

    C 2023年5月24日
    00
  • JDK1.8、JDK1.7、JDK1.6区别看这里

    JDK1.6、JDK1.7、JDK1.8区别 Java Development Kit(JDK)是Java编程环境的发行版。JDK包含Java运行环境(JRE)和Java开发工具(JDK)。 JDK版本通常以数字表示(例如JDK1.6、JDK1.7、JDK1.8)。下面是这些版本的主要区别。 JDK1.6(Java 6) JDK1.6提供了许多新功能和改进。…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部