1. 程式人生 > >判斷檔案是二進位制檔案還是文字檔案的函式

判斷檔案是二進位制檔案還是文字檔案的函式

#include "sys/stat.h"
bool IsTextFile(const char * strFileName)
{
if(strFileName==NULL) return false;
struct stat f_stat; 
if(stat(strFileName,&f_stat)==-1)
{ 
return false;
} 
long lngFilesize=0;
lngFilesize=(long)f_stat.st_size;
if(lngFilesize<=0) return false;
FILE *ft=fopen(strFileName, "rb");
if(ft==NULL)
{
return false;
}
char btData[1];
long lngReadPos;
long lngMaxRead=40960;
if(lngMaxRead>lngFilesize) lngMaxRead=lngFilesize;
for(lngReadPos=1;lngReadPos<=lngMaxRead;lngReadPos++)
{
fread(&btData,1,1,ft);
if(btData[0]=='/0')
{
fclose(ft);
return false; 
}
}
fclose(ft);
return true;
}
//呼叫:
void CIsTextFileProjectDlg::OnClick() 
{
if(IsTextFile("c://新建.txt")==false)
{
AfxMessageBox("新建.txt 二進位制檔案");
}
else
{
AfxMessageBox("新建.txt 文字檔案");
}
}