c++ - 文件大小方法 boost 库奇怪

标签 c++ boost filesystems filesize

我在使用 boost 库中的 file_size 方法时遇到了一个奇怪的问题。如果我尝试使用目录迭代器取消引用的路径不是可执行文件所在的当前路径,那么对于我尝试返回的任何文件大小,我都会得到 0 值。因此,如果我的路径变量被实例化为“。”对于当前文件夹,它将返回字节大小没有问题,但如果我向上移动一个文件夹或 C 驱动器上的任何路径,则不会返回文件的字节大小。这是范围问题还是我遗漏了什么?

最佳答案

事实证明,如果您正在使用 directory_iterator 并试图找到 file_size( dirIter->path() ),它将仅适用于可执行文件所在的当前文件夹。但是,如果您连接目录的路径您正在使用您分配的变量名进行搜索(例如路径 p = "."),它将返回搜索到的任何文件夹中的任何文件的字节大小(如何使其工作的示例是 file_size( p/dirIter->path () ) 其中/是 boost 库中重载的连接运算符)。

关于c++ - 文件大小方法 boost 库奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18007608/

相关文章:

c++ - 异步运行的函数的返回类型应该是什么

c++ - 通过匿名类型成员结构的 C++ 属性的一般后果是什么

c++ - 当其他进程可能正在使用它时删除 boost interprocess_mutex

filter - 如何避免在 Windows 文件管理器根中显示存储提供程序同步根

linux - inode存储在哪里?

c++ - 使用 Armadillo 根据行索引和列索引从矩阵中提取元素

java - 一些有用的示例C++和Java网站?

c++ - 如何正确初始化 boost multi_array 的对象?

c++ - ReadWrite lock using Boost.Threads(如何转换这个简单的类)

Java测试磁盘是SSD还是HDD