获取文件大小这里有两种方法:
方法一、
范例:
- unsigned long get_file_size(const char *path)
- {
- unsigned long filesize = -1;
- FILE *fp;
- fp = fopen(path, "r");
- if(fp == NULL)
- return filesize;
- fseek(fp, 0L, SEEK_END);
- filesize = ftell(fp);
- fclose(fp);
- return filesize;
- }
此种以打开文件的方法取得文件的大小,不适合大文件,并且可能会出现访问冲突(比如正在下载的文件),效率也比较低
方法二、
范例:
- #include <sys/stat.h>
- unsigned long get_file_size(const char *path)
- {
- unsigned long filesize = -1;
- struct stat statbuff;
- if(stat(path, &statbuff) < 0){
- return filesize;
- }else{
- filesize = statbuff.st_size;
- }
- return filesize;
- }
此种使用读取文件属性的方法得到文件的大小,效率较高,也较稳定