#include <Windows.h>
#include <stdio.h>
int TranslateFile(char* SourcefilePath,char* TargetFilePath);
int main()
{
char sourceFilePath[200] = {0};
char targetFilepath[200]={0};
int iResult;
printf("please enter the path of the sourceFilePath/n");
scanf("%s",sourceFilePath);
printf("please enter the path of the targetFilePath /n");
scanf("%s",targetFilepath);
iResult = TranslateFile(sourceFilePath,targetFilepath);
if (iResult != 0)
{
printf("failed to translate the file/n");
return -1;
}
else
{
printf("%s have been translate to the %s/n",sourceFilePath,targetFilepath);
return 0;
}
}
long GetFileSize(char* filepath)
{
FILE* fp = NULL;
long lReturn = 0L;
fp = fopen(filepath,"r");
if (NULL == fp)
{
printf("can not open the file!");
return -1L;
}
fseek(fp,0l,SEEK_END);
lReturn = ftell(fp);
return lReturn;
}
int TranslateFile(char* SourcefilePath,char* TargetFilePath)
{
FILE* SourseFileStream = NULL;
FILE* TargetFileStream = NULL;
long lFileLength = 0l;
char *temp = NULL;
SourseFileStream = fopen(SourcefilePath,"rb");
if (NULL == SourseFileStream)
{
printf("%s can not be opened",SourcefilePath);
return -1;
}
TargetFileStream = fopen(TargetFilePath,"wb");
if (NULL == TargetFileStream)
{
printf("%s can not be opened",TargetFilePath);
return -1;
}
lFileLength = GetFileSize(SourcefilePath);
temp = (char*)malloc(lFileLength);
memset(temp,0x0,lFileLength);
if (!feof(SourseFileStream))
{
fread(temp,1,lFileLength,SourseFileStream);
}
fwrite(temp,1,lFileLength,TargetFileStream);
free(temp);
fclose(SourseFileStream);
fclose(TargetFileStream);
return 0;
}