基于c++标准库计算文件大小
来源:互联网 发布:万游网络武汉 编辑:程序博客网 时间:2024/06/05 07:53
原文:http://www.programgo.com/article/52472798285/
前几天用c++写个小程序,需要想得到文件的大小,以前用的是c的办法。但是后面的文件操作都是用c++的io流做的,怕用c的FILE会有冲突,所以想用c++的方式实现,去网上一搜居然没有,全是用c和windows API的,难道c++这么强大的语言居然没这功能,不可能啊,翻出《c++标准程序库》重看了一下fstream的内容,才找到了答案。不过书中也没有直接的计算文件大小的函数。只有操作流的读写位置的方法。模仿c中的思路,计算文件结尾的读写位置减去文件起始的读写位置就是文件的字节数。
unsigned int GetFileLength(ifstream &f) { ifstream::pos_type old=f.tellg(); f.seekg(0,ifstream::beg); ifstream::pos_type start=f.tellg(); f.seekg(0,ifstream::end); ifstream::pos_type end=f.tellg(); f.seekg(old); return end-start; }
不过文件流要以二进制的方式打开
ifstream f("zqc.torrent",ifstream::binary); cout<<GetFileLength(f);
补充:
另一种易懂的方法:先通过tellg()函数获取文件指针的位置,然后后通过seekg函数将文件指针移到文件末尾,在通过tellg函数获取文件指针的位置,此时的文件位置就是文件的长度,最后通过seekg函数将文件指针位置恢复到原来的位置。
long GetFileLength(ifstream&ifs){ long tmppos; long respos; tmppos=ifs.tellg();//先保存最初位置 ifs.seekg(0,ios::end);//将指针移到未见末尾 respos=ifs.tellg();//保存末尾位置,即为文件大小 ifs.seekg(tmppos,ios::beg);//恢复文件指针 return respos; //返回文件大小}
0 0
- 基于c++标准库计算文件大小
- 基于c++标准库计算文件大小
- C语言计算文件大小
- c语言计算文件大小
- 巧妙实现之c语言计算文件大小
- 计算文件大小
- 计算文件大小
- 计算文件大小
- 计算文件大小
- 计算文件大小
- 标准C获得文件大小的5种方法
- 标准C获得文件大小的5种方法
- C语言——计算文件大小(一)
- C语言——计算文件大小(二)
- 计算windows一个文件大小
- Hadoop计算文件大小
- 计算文件夹文件大小
- C++计算文件大小
- 欢迎使用CSDN-markdown编辑器
- 任务一 HelloWorld
- OpenCV 图像线性滤波综合示例程序(用到了Trackbar轨迹条)
- _cinit
- Hibernate JAP 字段自动添加下划线问题,
- 基于c++标准库计算文件大小
- 第三章习题3-第6题==判断完数
- 滑动窗口机制
- 第三周 项目4-顺序表的应用
- PHP中echo和print的区别
- Linux的哲学思想
- 深入浅出RxJava三--响应式的好处
- Understanding Defer, Panic and Recover
- 【线性规划与网络流24题 10】餐巾计划