C++17中推荐使用std::filesystem::file_size获取文件大小。需包含头文件并引入命名空间,调用fs::file_size(path)返回字节数,但文件不存在、为目录或无权限时会抛出异常,因此应结合try-catch处理错误,或先通过fs::exists和fs::is_regular_file检查路径有效性,确保安全跨平台使用。
在C++17及以后的标准中,std::filesystem::file_size 函数提供了一种简单、安全的方式来获取文件的大小(以字节为单位)。这个函数属于 头文件,使用前需要确保编译器支持 C++17 或更高版本。
使用 file_size 函数前,需包含 并引入 std::filesystem 命名空间:
ce fs = std::filesystem;
直接调用 fs::file_size(path),传入文件路径即可返回文件字节数:
try {注意:该函数在文件不存在、路径是目录或无权限访问时会抛出异常,建议用 try-catch 包裹。
为避免异常,可先判断路径是否存在且为普通文件:
示例代码:
fs::path p = "data.bin";基本上就这些。只要编译环境支持 C++17,file_size 是获取文件大小最推荐的方式,简洁且跨平台。注意处理异常和路径类型即可。