如何在C语言编程里面修改源文件名字

发布网友 发布时间:2022-04-24 02:51

我来回答

3个回答

热心网友 时间:2023-10-22 23:22

C修改文件名:使用rename函数。
rename函数:功能描述: 改变文件的名称或者位置,如果目标已存在,将被自动覆盖。   用法:  #include <stdio.h>int rename(const char *oldpath, const char *newpath);参数:   
oldpath:旧文件名。 newpath:新文件名或者新位置。 
具体可以分以下2种情况:
1、修改单个文件
    直接使用rename即可。
2、批量修改文件(如:按一定规则修改某目录下所有文件)
    需要使用opendir遍历目录,然后修改该目录下文件。下面提供一个简单的例子。
void ModFilesName(const char *pcszPath)
{
    char szPathFile[1024] = {0};                            //路径+文件名
    DIR *dir_p;
    struct dirent *direntp;
    struct stat entryInfo;
    //文件目录不存在,则创建
    if(stat(pcszPath, &entryInfo) < 0)
    {
        printf("Auto create folder:%s\n", pcszPath);
        mkdir(pcszPath, 0755);
    }
    
    if ((dir_p = opendir (pcszPath)) == NULL)
    {
        return;
    }
    while ((direntp = readdir (dir_p)) != NULL)
    {
        //组合完整路径
        sprintf(szPathFile, "%s/%s", pcszPath, direntp->d_name);
        
        //判断文件是否是目录
        if(lstat(szPathFile, &entryInfo) == 0)
        {
            if(S_ISDIR(entryInfo.st_mode))
            {
                continue;                                   //忽略目录
            }
            
            rename(szPathFile, 你要修改成的文件名);
        }
    } // while ( ...
    
    closedir (dir_p);
}
    
推荐一片文章:http://blog.chinaunix.net/uid-7525568-id-251530.html

希望能帮助到你,你的好评是我前进的动力!谢谢!

热心网友 时间:2023-10-22 23:22

修改文件名,可要调用操作系统提供的API函数,比如Windows上的MoveFile(),也可以直接调用cmd中已提供的重命名命令——rename。下面的示例代码,调用rename命令来重名命文件名。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int ac, char *pav[])
{
if (ac!=3) {
printf("程序名 要重命名的文件路径 新的文件名\n");
printf("示例:test.exe 1.txt 2.txt\n");
return 0;
}
if (access(pav[1], 0) !=0) {
printf("不存在该文件\n");
return 0;
}
char szcmd[256] = "cmd /c rename ";
strcat(szcmd, pav[1] );
strcat(szcmd, " ");
strcat(szcmd, pav[2]);
system(szcmd);
return 0;
}

热心网友 时间:2023-10-22 23:23

我想问下你是在linux环境中运行程序的吗?如果是那样的话非常简单,你在C语言编程的程序里面加这样一条代码:
system("\\cp -r 2013.XXX 2014.XXX");,要注意路径哦,我这个是当前目录下的,如果还不懂可以私聊我。

热心网友 时间:2023-10-22 23:22

C修改文件名:使用rename函数。
rename函数:功能描述: 改变文件的名称或者位置,如果目标已存在,将被自动覆盖。   用法:  #include <stdio.h>int rename(const char *oldpath, const char *newpath);参数:   
oldpath:旧文件名。 newpath:新文件名或者新位置。 
具体可以分以下2种情况:
1、修改单个文件
    直接使用rename即可。
2、批量修改文件(如:按一定规则修改某目录下所有文件)
    需要使用opendir遍历目录,然后修改该目录下文件。下面提供一个简单的例子。
void ModFilesName(const char *pcszPath)
{
    char szPathFile[1024] = {0};                            //路径+文件名
    DIR *dir_p;
    struct dirent *direntp;
    struct stat entryInfo;
    //文件目录不存在,则创建
    if(stat(pcszPath, &entryInfo) < 0)
    {
        printf("Auto create folder:%s\n", pcszPath);
        mkdir(pcszPath, 0755);
    }
    
    if ((dir_p = opendir (pcszPath)) == NULL)
    {
        return;
    }
    while ((direntp = readdir (dir_p)) != NULL)
    {
        //组合完整路径
        sprintf(szPathFile, "%s/%s", pcszPath, direntp->d_name);
        
        //判断文件是否是目录
        if(lstat(szPathFile, &entryInfo) == 0)
        {
            if(S_ISDIR(entryInfo.st_mode))
            {
                continue;                                   //忽略目录
            }
            
            rename(szPathFile, 你要修改成的文件名);
        }
    } // while ( ...
    
    closedir (dir_p);
}
    
推荐一片文章:http://blog.chinaunix.net/uid-7525568-id-251530.html

希望能帮助到你,你的好评是我前进的动力!谢谢!

热心网友 时间:2023-10-22 23:22

修改文件名,可要调用操作系统提供的API函数,比如Windows上的MoveFile(),也可以直接调用cmd中已提供的重命名命令——rename。下面的示例代码,调用rename命令来重名命文件名。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int ac, char *pav[])
{
if (ac!=3) {
printf("程序名 要重命名的文件路径 新的文件名\n");
printf("示例:test.exe 1.txt 2.txt\n");
return 0;
}
if (access(pav[1], 0) !=0) {
printf("不存在该文件\n");
return 0;
}
char szcmd[256] = "cmd /c rename ";
strcat(szcmd, pav[1] );
strcat(szcmd, " ");
strcat(szcmd, pav[2]);
system(szcmd);
return 0;
}

热心网友 时间:2023-10-22 23:23

我想问下你是在linux环境中运行程序的吗?如果是那样的话非常简单,你在C语言编程的程序里面加这样一条代码:
system("\\cp -r 2013.XXX 2014.XXX");,要注意路径哦,我这个是当前目录下的,如果还不懂可以私聊我。

热心网友 时间:2023-10-22 23:22

C修改文件名:使用rename函数。
rename函数:功能描述: 改变文件的名称或者位置,如果目标已存在,将被自动覆盖。   用法:  #include <stdio.h>int rename(const char *oldpath, const char *newpath);参数:   
oldpath:旧文件名。 newpath:新文件名或者新位置。 
具体可以分以下2种情况:
1、修改单个文件
    直接使用rename即可。
2、批量修改文件(如:按一定规则修改某目录下所有文件)
    需要使用opendir遍历目录,然后修改该目录下文件。下面提供一个简单的例子。
void ModFilesName(const char *pcszPath)
{
    char szPathFile[1024] = {0};                            //路径+文件名
    DIR *dir_p;
    struct dirent *direntp;
    struct stat entryInfo;
    //文件目录不存在,则创建
    if(stat(pcszPath, &entryInfo) < 0)
    {
        printf("Auto create folder:%s\n", pcszPath);
        mkdir(pcszPath, 0755);
    }
    
    if ((dir_p = opendir (pcszPath)) == NULL)
    {
        return;
    }
    while ((direntp = readdir (dir_p)) != NULL)
    {
        //组合完整路径
        sprintf(szPathFile, "%s/%s", pcszPath, direntp->d_name);
        
        //判断文件是否是目录
        if(lstat(szPathFile, &entryInfo) == 0)
        {
            if(S_ISDIR(entryInfo.st_mode))
            {
                continue;                                   //忽略目录
            }
            
            rename(szPathFile, 你要修改成的文件名);
        }
    } // while ( ...
    
    closedir (dir_p);
}
    
推荐一片文章:http://blog.chinaunix.net/uid-7525568-id-251530.html

希望能帮助到你,你的好评是我前进的动力!谢谢!

热心网友 时间:2023-10-22 23:22

修改文件名,可要调用操作系统提供的API函数,比如Windows上的MoveFile(),也可以直接调用cmd中已提供的重命名命令——rename。下面的示例代码,调用rename命令来重名命文件名。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int ac, char *pav[])
{
if (ac!=3) {
printf("程序名 要重命名的文件路径 新的文件名\n");
printf("示例:test.exe 1.txt 2.txt\n");
return 0;
}
if (access(pav[1], 0) !=0) {
printf("不存在该文件\n");
return 0;
}
char szcmd[256] = "cmd /c rename ";
strcat(szcmd, pav[1] );
strcat(szcmd, " ");
strcat(szcmd, pav[2]);
system(szcmd);
return 0;
}

热心网友 时间:2023-10-22 23:22

C修改文件名:使用rename函数。
rename函数:功能描述: 改变文件的名称或者位置,如果目标已存在,将被自动覆盖。   用法:  #include <stdio.h>int rename(const char *oldpath, const char *newpath);参数:   
oldpath:旧文件名。 newpath:新文件名或者新位置。 
具体可以分以下2种情况:
1、修改单个文件
    直接使用rename即可。
2、批量修改文件(如:按一定规则修改某目录下所有文件)
    需要使用opendir遍历目录,然后修改该目录下文件。下面提供一个简单的例子。
void ModFilesName(const char *pcszPath)
{
    char szPathFile[1024] = {0};                            //路径+文件名
    DIR *dir_p;
    struct dirent *direntp;
    struct stat entryInfo;
    //文件目录不存在,则创建
    if(stat(pcszPath, &entryInfo) < 0)
    {
        printf("Auto create folder:%s\n", pcszPath);
        mkdir(pcszPath, 0755);
    }
    
    if ((dir_p = opendir (pcszPath)) == NULL)
    {
        return;
    }
    while ((direntp = readdir (dir_p)) != NULL)
    {
        //组合完整路径
        sprintf(szPathFile, "%s/%s", pcszPath, direntp->d_name);
        
        //判断文件是否是目录
        if(lstat(szPathFile, &entryInfo) == 0)
        {
            if(S_ISDIR(entryInfo.st_mode))
            {
                continue;                                   //忽略目录
            }
            
            rename(szPathFile, 你要修改成的文件名);
        }
    } // while ( ...
    
    closedir (dir_p);
}
    
推荐一片文章:http://blog.chinaunix.net/uid-7525568-id-251530.html

希望能帮助到你,你的好评是我前进的动力!谢谢!

热心网友 时间:2023-10-22 23:22

修改文件名,可要调用操作系统提供的API函数,比如Windows上的MoveFile(),也可以直接调用cmd中已提供的重命名命令——rename。下面的示例代码,调用rename命令来重名命文件名。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int ac, char *pav[])
{
if (ac!=3) {
printf("程序名 要重命名的文件路径 新的文件名\n");
printf("示例:test.exe 1.txt 2.txt\n");
return 0;
}
if (access(pav[1], 0) !=0) {
printf("不存在该文件\n");
return 0;
}
char szcmd[256] = "cmd /c rename ";
strcat(szcmd, pav[1] );
strcat(szcmd, " ");
strcat(szcmd, pav[2]);
system(szcmd);
return 0;
}

热心网友 时间:2023-10-22 23:23

我想问下你是在linux环境中运行程序的吗?如果是那样的话非常简单,你在C语言编程的程序里面加这样一条代码:
system("\\cp -r 2013.XXX 2014.XXX");,要注意路径哦,我这个是当前目录下的,如果还不懂可以私聊我。

热心网友 时间:2023-10-22 23:23

我想问下你是在linux环境中运行程序的吗?如果是那样的话非常简单,你在C语言编程的程序里面加这样一条代码:
system("\\cp -r 2013.XXX 2014.XXX");,要注意路径哦,我这个是当前目录下的,如果还不懂可以私聊我。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com