#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 文本文件");
}
}
转载自:http://blog.csdn.net/tanaya/archive/2009/04/12/4067028.aspx