判斷檔案是二進位制檔案還是文字檔案的函式
阿新 • • 發佈:2019-01-31
#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 文字檔案"); } }