现代c++获取文件大小

linux c++获取文件大小

  • 前言
  • 一、包含`fstream`头文件
  • 二、验证
  • 三、总结

前言


本文介绍一种使用现代c++获取指定文件大小的方法。

一、包含fstream头文件

#include 

std::size_t fileSize(const std::string &filename) {
    std::ifstream fs(filename, std::ios::binary | std::ios::ate);
    if (!fs.is_open()) {
        return 0;
    }
    return fs.tellg();
}

这里不需要关闭文件,因为c++的RAII机制,标准库中的std::ifstream已经帮我们实现了,出作用域帮我关闭文件的操作。

二、验证

main.cpp中写下如下代码

#include 
#include 

std::size_t fileSize(const std::string &filename) {
    std::ifstream fs(filename, std::ios::binary | std::ios::ate);
    if (!fs.is_open()) {
        return 0;
    }
    return fs.tellg();
}

int main(int argc, char **argv) {
    std::cout << "文件大小 : " << fileSize("./main.cpp") << std::endl;
    return 0;
}

使用g++编译并执行,g++ main.cpp -o main && ./main 输出如下
在这里插入图片描述
我们使用ls -alsh命令来看下文件大小
现代c++获取文件大小_第1张图片
可见我们通过程序得到的文件大小和ls命令得到的文件大小一致。

三、总结

本文介绍了从现代c++获取指定文件大小的方法,亲测可用,嘻嘻。

你可能感兴趣的:(c++,linux,开发语言)