當前位置:首頁 » 編程語言 » c語言獲取文件夾的大小
擴展閱讀
c語言如何考前突擊 2022-05-24 17:57:30

c語言獲取文件夾的大小

發布時間: 2022-01-21 14:03:10

⑴ 怎麼在讀入文件前獲得文件大小【c語言版】

如果文件大小指的是你從C
程序中可以讀進的字元數量,
要得到這個精確的數字可能困難或不可能。
Unix
系統函數stat()
會給出准確的答案。有些系統提供了類似Unix
的stat()函數,
但只返回一個近似值。你可以調用fseek()
搜索到文件尾,
再調用ftell(),
或者調用fstat(),
然而這些方法都有同樣的問題:
fstat()
不可移植,
通常返回和stat()一樣的值;
ftell()
並不保證可以返回字元計數,
除非是用於二進制文件,
但是,
嚴格來講,
二進制文件並不一定支持fseek
搜索到SEEK
END。某些系統提供filesize()
或filelength()
的函數,
但是它們明顯的不可移植。你是否確定你必須預先知道文件大小?作為一個C
程序最准確的方法就是打開文件並讀入,
也許可以重新整理代碼,
使其邊讀入邊計算文件大小。

⑵ C語言中如何方便地得到文件長度

xdg1981的方法對大多數文件有效
alexzhu80s的方法調用的是unix的函數,不是標准庫中的。不是每種操作系統都有stat函數。

沒有100%正確的方法,xdg1981的方法成功率最高。
你最好根據你所用的操作系統來調用操作系統提供的介面。例如unix的stat及windows的GetFileSize

⑶ 用純C語言取得文件長度

size是要讀取的位元組個數,一般用sizeof()來定義nitems是要讀取的元素個數,也就是讀取多少個sizeof()位元組個數

⑷ c語言如何通過文件屬性獲取文件大小知道

c語言可以通過stat()函數獲得文件屬性,通過返回的文件屬性,從中獲取文件大小。
#include
<sys/stat.h>
可見以下結構體和函數
struct
stat
{

_dev_t
st_dev;

_ino_t
st_ino;

unsigned
short
st_mode;

short
st_nlink;

short
st_uid;

short
st_gid;

_dev_t
st_rdev;

_off_t
st_size;

//文件大小

time_t
st_atime;

time_t
st_mtime;

time_t
st_ctime;

};
stat(const
char
*,
struct
_stat
*);
//根據文件名得到文件屬性
參考代碼:
#include <sys/stat.h>
void main( )
{
struct stat buf ;
if ( stat( "test.txt", &buf ) < 0 )
{
perror( "stat" );
return ;
}
printf("file size:%d\n", buf.st_size );
}

⑸ C語言獲取txt文件大小兩種方法的差異

我測試了你的代碼:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidmain()
{
FILE*p=fopen("d:\jiuibf.txt","rt");
intlength=0;
for(;fgetc(p)!=EOF;length++);
fclose(p);
printf("第一種方式,文件長度=%d ",length);
p=fopen("d:\jiuibf.txt","rb");
fseek(p,0,2);
length=ftell(p);
fclose(p);
printf("第二種方式,文件長度=%d ",length);
}

文本文件的內容是:

FILE *p=("jiuibf.txt","rt");

int length;

for(;fgetc(p)!=EOF;length);

FILE *p=(jiuibf.txt","rb");

int length;

fseek(p,0,2);

length=ftell(p);

程序的輸出是:

FILE*fp;
fp=fopen("localfile","rb");//localfile文件名
fseek(fp,0,SEEK_SET);
fseek(fp,0,SEEK_END);
longlongBytes=ftell(fp);//longBytes就是文件的長度

⑹ c語言如何通過文件屬性獲取文件大小

在"stdio.h"中有如下定義

struct_iobuf{
char*_ptr;//文件輸入的下一個位置
int_cnt;//當前緩沖區的相對位置
char*_base;//指基礎位置(即是文件的其始位置)
int_flag;//文件標志
int_file;//文件的有效性驗證
int_charbuf;//檢查緩沖區狀況,如果無緩沖區則不讀取
int_bufsiz;//文件的大小
char*_tmpfname;//臨時文件名
};
typedefstruct_iobufFILE;

⑺ c獲得文件大小

先用CreateFile打開一個文件得到文件句柄hfile,再調用GetFileSize(hfile)就ok

⑻ c語言如何計算文件大小

#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE*fp;
int a;
if((fp=fopen("1.txt","rb"))==NULL)
{
printf("此文件無法打開");
exit(0);
}
fseek(fp,0,2);
a=ftell(fp);
printf("%d\n",a);
fclose(fp);
}
望採納!

⑼ C語言獲取文件大小 int或long int都是32位,最大為40億 在ntfs下文件超過4GB怎

用庫函數fgetpos可以獲得64位長度的值,舉個例子:

FILE *fp;
fpos_t filelen; //fpos_t是個宏,就是long long ,64位整數
fp = fopen("xxxxx","r");
fseek(fp, 0, SEEK_END); //移動文件指針到末尾
fgetpos(fp, &filelen); //把偏移量寫入filelen

⑽ c語言求文件長度,ftell得到文件長度為-1

C語言獲取文件長度及全部內容,參考代碼如下:


FILE*fp;
fp=fopen("localfile","rb");//localfile文件名
fseek(fp,0L,SEEK_END);/*定位到文件末尾*/
flen=ftell(fp);/*得到文件大小*/
p=(char*)malloc(flen+1);/*根據文件大小動態分配內存空間*/
if(p==NULL)
{
fclose(fp);
return0;
}
fseek(fp,0L,SEEK_SET);/*定位到文件開頭*/
fread(p,flen,1,fp);/*一次性讀取全部文件內容*/
p[flen]=0;/*字元串結束標志*/


all:strchange.o
gcc-ostrchange.o-cstrchange.c
strchange.o:strchange.c
gcc-ostrchangestrchange.o
clean:
rm-rfstrchange*.o