程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言獲取文件大小相關操作

C語言獲取文件大小相關操作

編輯:關於C

C語言獲取文件大小相關操作


 


說明

通常在希望從文件中把數據全都出來賦值給一個數組或者某一個指針,然後再進行相關的數據處理,比如解碼等操作。而在進行賦值以前,數組或者指針都需要進行內存分配,通常對於數組可以直接以文件最大的字節數進行分配,或者指針用malloc也按照最大字節進行分配,但這樣會造成內存浪費,對於追求完美的程序員來講是不能容忍的。所以一種非常適合的方法是在讀取文件具體數據之前,可以提前獲得文件大小,然後利用malloc對指針進行內存分配,然後再進行數據讀取,直接fread對應的數據即可。本文給出了一種最簡單的獲取文件大小的方法。

程序代碼

     FILE * fImage;
     int Length;
     unsigned char * ImageData;
     if((fImage=fopen(Bretagne2.j2k,rb))!=NULL)//尋找文件的大小!
     {
        fseek(fImage,0,SEEK_END);
        Length=ftell(fImage);
        printf(data size = %ld
,Length);
        fseek(fImage,0,SEEK_SET);
        ImageData = (unsigned char *)malloc(Length);
        fread(ImageData,1,Length,fImage);
        if(!ImageData)
        {
            printf(malloc error! 
);
            return;
        }
        fclose(fImage);
    }
    else 
    {
        printf(Open Data error!
);
        return;
    }

首先是打開文件,然後將文件指針調整到文件尾部,然後使用ftell獲取文件指針的位置,ftell返回值就是用於得到文件位置指針當前位置相對於文件首的偏移字節數。這樣就很簡單的獲取這個文件的大小了。同時直接使用malloc進行內存分配,然後直接讀取即可,十分方便。


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved