用C语言怎么改文件名?

用C语言怎么改文件名?,第1张

我告诉你一个很简单的方法

你加头文件#include<stdlib.h>

在语句中写system("ren

qq.txt

ww.txt")

如果文件不在程序目录下,就在文件名那里加路径就可以了,但路径中的单斜杠(\)要写成双斜杠(\\)

如system("ren

c:\\qq.txt

ww.txt")

如果你要用字符串来命名文件名。就用这个函数strcat()函数来把字符串接起来就可以了,在、前面加头文件#include<string.h>.

如上面的列子可以这么写:

char

a[10]="ww.txt"//这是你要改成的文件名。

char

b[20]="ren

c:\\qq.txt

"

strcat(b,a)//这里把a、b字符串接起来,经过这里b就等于"ren

c:\\qq.txt

ww.txt"了

//下面直接又调用

system(b)//因为字符串b

经过和a连接后就是整个你需要填进的参数了。

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

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

修改文件名,可要调用 *** 作系统提供的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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11821213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存