如何在C / CPP中使用ext更改文件名

How to change filename alongwith ext in C/CPP

本文关键字:ext 文件名 CPP      更新时间:2023-10-16

我在一个文件夹中有数百个文件,如下所示:

mp_12345.dat
mp_23455.dat
mp_12323.dat
mp_44445.dat
.
.
.

我想将所有文件重命名到另一个文件夹:

Ind_somecircle_mp_12345.mbin
Ind_somecircle_mp_23455.mbin
Ind_somecircle_mp_12323.mbin
Ind_somecircle_mp_44445.mbin
.
.

等等。

源文件夹:/home/dir1/foo/目标文件夹:/home/dir2/foo/我正在寻找 C 或 C++ 代码来执行此操作。

提前谢谢。

实际上,

这对于 shell 脚本来说会是一个更好的工作,但如果你坚持使用 C,那么rename(src, tgt);就是你正在寻找的。

如果要从目录中读取文件名,则必须使用 opendirreaddir 遍历文件。

一个简短的示例:

void main(int c,char **args)
{
    DIR *dir;
    struct dirent *dent;
    dir = opendir("mydir);
    if(dir!=NULL)
    {
        while((dent=readdir(dir))!=NULL)
            printf(dent->d_name);   <-- rename
    }
    close(dir);
}

如果你坚持使用 C/C++ 来完成你需要使用

Opendir - http://linux.die.net/man/3/opendir, readdir - http://linux.die.net/man/3/readdir 获取文件列表

使用重命名 - http://linux.die.net/man/2/rename 更改文件的文件名