替换文件后缀名(C语言)

 

#include
#include
#include
void dataCopy(char filenameS[],char filenameD[])
{
 char ch;                    
 FILE *fp;
    FILE *fp1;   
    if((fp=fopen(filenameS,"r"))==NULL||(fp1=fopen(filenameD,"w"))==NULL)
    {
        printf("can't open the source file!\n");
        exit(0);
    }
    else
    {  
        ch=fgetc(fp);  
        while (!feof(fp))                        //while (str!=EOF)
        {
            fprintf(fp1,"%c",ch);
            ch=fgetc(fp);
        }
        fclose(fp);
        fclose(fp1);
    }

}


int main()
{
 char path_buffer[_MAX_PATH];  
    char drive[_MAX_DRIVE];  
    char dir[_MAX_DIR];  
    char fname[_MAX_FNAME];  
    char ext[_MAX_EXT];
 char path_buffer1[_MAX_PATH];  
    char drive1[_MAX_DRIVE];  
    char dir1[_MAX_DIR];
 //欲查找的文件,支持通配符
 //要替换的文件所在的文件夹的路径
 const char *to_search="C:\\Documents and Settings\\Administrator\\桌面\\新建文件夹\\*.txt";
 //要替换的文件类型
 const char *replace_name=".c";
 /////////////////////////////////////////////////////
 _splitpath( to_search, drive1, dir1, fname, ext );
 //////////////////////////////////////////////////////
 //用于查找的句柄
 long handle;        
 //文件信息的结构体
 struct _finddata_t fileinfo;
 //第一次查找                  
 handle=_findfirst(to_search,&fileinfo);        
 if(-1==handle)return -1;
 //得到文件名字
 _splitpath( fileinfo.name, drive, dir, fname, ext );
 //得到目的文件名字
 _makepath(path_buffer, drive1, dir1, fname, replace_name );
 //得到源文件名字
 _makepath(path_buffer1, drive1, dir1, fname, ext );
 //复制
 dataCopy(path_buffer1,path_buffer);
 //循环查找其他符合的文件,知道找不到其他的为止
 while(!_findnext(handle,&fileinfo))            
 { 
  _splitpath( fileinfo.name, drive, dir, fname, ext );
  _makepath(path_buffer, drive1, dir1, fname, replace_name );
  _makepath(path_buffer1, drive1, dir1, fname, ext );
  dataCopy(path_buffer1,path_buffer);
 }
 //别忘了关闭句柄
 _findclose(handle);                                     
 return 0;
}

你可能感兴趣的:(替换文件后缀名(C语言))