在C ++中了解文件大小的正确方法是什么

时间:2015-11-11 12:15:43

标签: c++ stl

我有兴趣使用stl。

的流类知道C ++中文件的大小

为了实现这一目标,很久以前,我打开了文件,然后我执行了一些如下操作:

file.seekp(0, ios_base::end); // another way is open file with ios::ate mode
unsigned long file_size = file.tellp();

根据文件类型和访问模式,使用seekg()tellg()可以完成同样的事情。

但是,阅读一些关于doc的文章,特别是关于stl的Josuttis书,我看到tellp()的返回类型是pos_type而不是unsigned long或任何类似的类型( size_t,......)。

这种知道文件大小的方式仍然有效,至少对于二进制文件来说,但我不符合,因为我不确定它的安全性和可移植性,因为pos_type无法正确地转换为{ {1}}。

所以我有以下问题:

  1. 这种方式知道文件大小(我的)仍然确定吗?我应该改变吗?
  2. 还有其他方法吗?

0 个答案:

没有答案