請問如何利用VC++, 來計算非.txt檔案大小 ?
如 EventLog.MB 或 EventLog.YG0 等..... 謝謝!
2006-08-21 19:08:41 · 3 個解答 · 發問者 我愛台南 1 in 電腦與網際網路 ➔ 程式設計
#include
int main()
{
FILE * fp;
fp=fopen("events.yg0","rb"); //開檔
if(fp)
{
fseek(fp,0,SEEK_END); //移到檔案尾端
printf("File_Length:%d byte\n",ftell(fp)); /*算出檔案大小 ,傳回檔案 fp 的指標偏移位元 (offset) 值*/
fclose(fp);//關檔
}
return 0;
}
/////////////////以上是一個小範例
有問題....可找我....或寄信
MSN:past-now-future@hotmail.com
2006-08-22 07:24:28 · answer #1 · answered by ? 4 · 0⤊ 0⤋
_ 開頭的函數雖然較快(一小點點),
但它不是標準函數!
建議使用相對等的非 _ 開頭的函數。
如:_open => fopen
2006-08-21 21:50:51 · answer #2 · answered by ? 7 · 0⤊ 0⤋
// 簡單一點用 _filelength() 就可以了
// msdn 找到的,做法先開啟一個檔案,計算好之後將他關閉
#include
#include
#include
#include
#include
long FileLen(char *p);
void main( void )
{
printf("%lu",FileLen("c:/SYSTEM.1ST"));
getch();
}
long FileLen(char *p)
{
long l=0;
int fh;
if( (fh = _open( "c:/SYSTEM.1ST", _O_RDWR | _O_CREAT, _S_IREAD | _S_IWRITE )) != -1 )
{
l = _filelength( fh );
_close( fh );
}
return l;
}
希望以上程式對你有所幫助。
2006-08-22 00:01:21 補充:
剛剛這行打錯了請修正為if( (fh = _open( "c:/SYSTEM.1ST", _O_RDWR | _O_CREAT, _S_IREAD | _S_IWRITE )) != -1 )請修更為if( (fh = _open( p, _O_RDWR | _O_CREAT, _S_IREAD | _S_IWRITE )) != -1 )
2006-08-21 19:51:46 · answer #3 · answered by ㄚ旺 5 · 0⤊ 0⤋