总结C/C++下读取文件大小的方法
来源:互联网 发布:koss sb45淘宝 编辑:程序博客网 时间:2024/06/05 16:45
C下:
1、依靠定位文件位置从而获得文件大小。
①
int GetFileSize(char *filename) { int size = 0; FILE *fp = fopen(filename, "rb"); if (fp) { fseek(fp, 0, SEEK_END); size = ftell(fp); fclose(fp); }return size;}
②
int GetFileSize(char *filename){int size = 0;FILE *fp = fopen(filename, "rb");if (NULL != fp){size = filelength(fileno(fp));}return size;}
2、直接读取文件属性得知文件大小。
int GetFileSize(char *filename){struct _stat buf;int result = -1;int size = 0;result = _stat( filename, &buf );if( result != 0 ){perror( "Problem getting information" );}else{size = buf.st_size;}return size;}
注:stat 结构定义于:/include/sys/stat.h 文件中,因此需要包含该文件,stat结构体定义如下
struct stat: mode_t st_mode; //文件对应的模式,文件,目录等 ino_t st_ino; //i-node节点号 dev_t st_dev; //设备号码 dev_t st_rdev; //特殊设备号码 nlink_t st_nlink; //文件的连接数 uid_t st_uid; //文件所有者 gid_t st_gid; //文件所有者对应的组 off_t st_size; //普通文件,对应的文件字节数 time_t st_atime; //文件最后被访问的时间 time_t st_mtime; //文件内容最后被修改的时间 time_t st_ctime; //文件状态(属性)改变时间 blksize_t st_blksize; //文件内容对应的块大小 blkcnt_t st_blocks; //文件内容对应的块数量
C++
利用Windows API或者MFC,得到文件大小。
1、利用MFC的CFile类
int GetFileSize(char *filename){bool iOpen = false;int size = 0;CFile cFile;iOpen = cFile.Open(filename, CFile::modeRead);if (iOpen){size = cFile.GetLength();}return size;}
2、利用windows API函数
int GetFileSize(char *filename){int size = 0;HANDLE handle = CreateFile(filename, FILE_READ_EA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);if(handle != INVALID_HANDLE_VALUE){size = GetFileSize(handle, NULL);CloseHandle(handle);} return size;}
0 0
- 总结C/C++下读取文件大小的方法
- linux下C获取文件大小的方法
- C语言读取文件大小
- C和C++获取文件大小的方法总结(转)
- C和C++获取文件大小的方法总结
- C和C++获取文件大小的方法总结
- C语言读取二进制文件大小
- C 语言读取二进制文件大小
- C语言中获取文件大小的方法
- C/C++获取文件大小的多种方法
- C#:格式化文件大小的C#方法[转]
- linux c 下获取文件大小
- linux c 下获取文件大小
- linux c下获取文件大小
- 总结下C语言中的文件读取
- 标准C获得文件大小的5种方法
- 标准C获得文件大小的5种方法
- C/C++获取文件大小(长度)的方法
- 代理模式
- servlet过滤器 web.xml配置
- Java ToString用法
- Android 桌面上特定的图标不能被移动和删除
- grails+spring Security项目demo
- 总结C/C++下读取文件大小的方法
- testhello.java
- 作业一
- C++数据类型
- leetcode: ZigZag Conversion
- python(2)import与from...import
- 企业综合管理系统 常见问题
- The min/max problem in C++ and Windows
- 来自西弗吉利亚大学li xin整理的CV代码合集