當前位置:首頁 » 編程語言 » c語言文件名稱怎麼改
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言文件名稱怎麼改

發布時間: 2023-08-06 20:32:51

① 如何用c語言重命名

可以通過C庫函數rename實現。

頭文件:stdio.h

原型::int rename(char *oldname, char *newname);

功能: 給一個文件重命名,從原始的oldname改成新名字newname。如果oldname和newname帶有路徑,且所在文件夾不同,那麼用該函數可以實現文件移動功能。刪除成功返回0,否則返回-1。

使用rename需要注意:

一、重命名文件:

  1. 如果newname指定的文件存在,則會被覆蓋。

  2. 如果newname與oldname不在一個目錄下,則相當於移動文件。


二、重命名目錄:

  1. 如果oldname和oldname都為目錄,則重命名目錄。

  2. 如果newname指定的目錄存在且為空目錄,則先將newname刪除。

  3. 對於newname和oldname兩個目錄,調用進程必須有寫許可權。

  4. 重命名目錄時,newname不能包含oldname作為其路徑前綴。例如,不能將/usr更名為/usr/foo/testdir,因為老名字( /usr/foo)是新名字的路徑前綴,因而不能將其刪除。

② C語言批量修改文件名

我只是想學個方法,誰也不能否認以後沒有可能用不到,想知道怎麼用c語言進行文件的批量重命名

③ 如何更改C語言的文件名(如下圖)

點擊菜單欄上的文件按鈕,可以看到另存為,可以把程序文件存成其他的名字。
還有一個方法是,關閉vs,然後找到工程文件夾,找到 練習.c,然後點右鍵,選擇重命名即可。

④ 用C語言編程修改文件名(C++也行)

麻煩在文件名允許有空白和一些與C語言有沖突的特殊符號。
如果沒有上述情況可以這樣寫:
(1)通過位置參數傳入 老擴展名 和 新擴展名
void main(int argc, char *argv[]){}
命令行: my_rename.exe jpeg jpg
程序名在 argv[0]里,"jpeg" 在 argv[1]里,jpg 在 argv[2]里了
l2 = strlen(argv[1]); // 老擴展名長度
(2) 通過
char command[120],namelist[]="all.lis";
sprintf(command,"DIR/B/A-D/OD *.%s > %s", argv[1],namelist);
system(command);
取得所有要換名的文件名字列表,存放在all.lis文件里,一個文件名一行。
(3)打開 all.lis 文件,
FILE *flist;
if ( (flist = fopen(namelist,"r") ) == NULL ) {
printf("\007Cann't open work file: %s ", namelist);exit(1);
};
一行一行讀入:
char current_file_name[64],new_name[64];
while ( fgets( current_file_name, 64, flist) !=NULL ) { 處理};
(4)while 循環 處理:
strcpy(new_name,current_file_name);
l = strlen(new_name); // 文件名全長
strncpy(&new_name[0]+(l-l2),"\0",1); // 文件基本名,含點號,不含擴展名
strcat(new_name,argv[2]); // 新文件名
sprintf(command,"REN %s %s",current_file_name,new_name); // 換名命令
system(command); // 執行換名

完整程序:
#include <stdio.h>
#include <stdlib.h>
FILE *flist;
void main(int argc,char * argv[])
{
int l,l2;
char command[240],namelist[]="all.lis";
char current_file_name[64],new_name[64];

if(argc < 3) {printf("\007Usage: %s old_ext new_ext\n",argv[0]);
printf("For example: %s jpeg jpg\n",argv[0]);
exit(0);
}

l2 = strlen(argv[1]);

sprintf(command,"DIR/B/A-D/OD *.%s > %s", argv[1],namelist);
system(command);
if ( (flist = fopen(namelist,"r") ) == NULL ) {
printf("\007Cann't open work file: %s ", namelist);exit(1);
};

while ( fgets( current_file_name, 64, flist) !=NULL ) {
strcpy(new_name,current_file_name);
l = strlen(new_name);
strncpy(&new_name[0]+(l-l2-1),"\0",1);
strcat(new_name,argv[2]);
strncpy(¤t_file_name[0]+l-1,"\0",1);
sprintf(command,"REN %s %s", current_file_name, new_name);
system(command);
};
fclose(flist);
exit(0);
}

⑤ 用C語言怎麼改文件名

我告訴你一個很簡單的方法
你加頭文件#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語言自定義文件名

1.用C語言自定義文件名,涉及到的相關知識如下:

_finddata_t結構體:
struct _finddata_t {
unsigned attrib ;
time_t time_create ;
time_t time_access ;
time_t time_write ;
_fsize_t size ;
char name [260] ;
}

rename函數:
功能描述:
改變文件的名稱或者位置,如果目標已存在,將被自動覆蓋。
用法:
#include <stdio.h>
int rename(const char *oldpath, const char *newpath);
參數:
oldpath:舊文件名。
newpath:新文件名或者新位置。

返回說明:
成功執行時,返回0。失敗返回-1,errno被設為以下的某個值
EACCES:權能不足
EBUSY:參數oldpath或者newpath代表的是目錄,而且一些進程正在使用它們
EFAULT: 內存空間不可訪問
EINVAL:參數無效
EISDIR:newpath是一個現存的目錄,而oldpath不是目錄
ELOOP :路徑解析的過程中存在太多的符號連接
EMLINK:目錄超出允許的最大連接數
ENAMETOOLONG:路徑名超出可允許的長度
ENOENT:路徑名部分內容表示的目錄不存在
ENOMEM: 核心內存不足
ENOSPC: 磁碟配額限制或空間不足
ENOTDIR:路徑名的部分內容不是目錄
EPERM : 包含路徑名的文件系統不支持建立目錄
EROFS:文件系統只讀
ENOTEMPTY:newpath是一個非空的目錄,除了. 和 ..以外,還包含其它入口。
EEXIST:同上
EXDEV:oldpath和newpath不處於同一文件系統

2.用C語言自定義文件名的代碼常式如下:

#include<stdio.h>
#include<io.h>
intmain(intargv,char*argc)
{
longhandle;
inti=0,j=0;
struct_finddata_tfileinfo;
charfilePT[256]={''};
charfileType[20]={'a',''};
charfilePath[256]={''};
charnewName[256]={''};
charoldName[256]={''};

printf("InputtherenamefilePath: ");
scanf("%s",filePath);
fflush(stdin);
printf("InputtherenamefileType: ");
scanf("%s",fileType);
fflush(stdin);
sprintf(filePT,"%s\*%s",filePath,fileType);

handle=_findfirst(filePT,&fileinfo);
if(-1==handle)
{
printf("_findfirst()error ");
getchar();
return(-1);
}
i=1000;
do{
sprintf(oldName,"%s\%s",filePath,fileinfo.name);//全部路徑
sprintf(newName,"%s\%d%s",filePath,i++,fileType);
j=rename(oldName,newName);
if(j!=0)
{
printf("rename()error ");
break;
}
}while(!_findnext(handle,&fileinfo));
_findclose(handle);
printf("ProgramEnd ");
getchar();
return(0);
}

⑦ 用C語言批量更改文件名

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
#include <string.h>
#include <iconv.h>
#include <errno.h>
/*int to_iconv(char *in,size_t in_bytes,char *out,size_t out_bytes,
const char *from,const char *to)*/
int to_iconv(char *in,char *out,size_t out_bytes,const char *from,const char *to)
{
iconv_t cd;
size_t in_bytes=strlen(in);
//size_t out_bytes;
if((cd=iconv_open(to,from)) == (iconv_t)-1)
{
perror("iconv_open");
return -1;
}
if(iconv(cd,&in,&in_bytes,&out,&out_bytes) == -1)
{
perror("iconv");
return -1;
}
iconv_close(cd);
return 0;
}
void read_and_iconv(char *path,const char *from,const char *to)
{
DIR *dirp;
struct dirent *dir;
struct stat buf;
char temp[512]; //用於保存轉換後的文件名稱
if((dirp=opendir(path)) == NULL) //讀取文件夾
{
perror("opendir");
return;
}
chdir(path); //進入到該文件夾內部
while(dir=readdir(dirp)) //讀取該文件夾下所有文件
{
if((strcmp(dir->d_name,".") == 0) || (strcmp(dir->d_name,"..") == 0))
//過濾掉.以及..文件夾,不然會死循環的
continue;
bzero(temp,sizeof(temp));
to_iconv(dir->d_name,temp,sizeof(temp),from,to); //進行編碼轉換
rename(dir->d_name,temp); //進行重命名
printf("rename %s to %s\n",dir->d_name,temp);
stat(temp,&buf);
if(S_ISDIR(buf.st_mode)) //判斷當前讀取的文件是否為文件夾
{
read_and_iconv(temp,from,to); //如果是則遞歸處理
chdir(".."); //處理完成後一定要記得返回上一層目錄哦,不然其它文件就無法處理了
}
}
closedir(dirp);
}
int main(int argc,char **argv)
{
read_and_iconv(argv[1],argv[2],argv[3]);
/*第一個參數是要轉換的文件夾所在的文件夾名稱
*第二個參數是文件名稱所使用的編碼(這里為GBK)
*第三個參數是要轉換成何種編碼(這里為UTF-8)
*/
return 0;
}

⑧ c語言 怎麼改成設置自定義文件名

C語言在創建文件對象是,可以同時傳入文件名的。
你可以參考下代碼:
FILE *fp;

if((fp = fopen(filename, "w"))==NULL)
{
printf("無法讀取文件");
return;
}
// 文件已經創建了 可以往裡寫東西了

fclose(fp);
return 0;