- filesystem[meta header]
- std::filesystem[meta namespace]
- directory_entry[meta class]
- function[meta id-type]
- cpp17[meta cpp]
std::uintmax_t file_size() const; // (1)
std::uintmax_t file_size(std::error_code& ec) const noexcept; // (2)- std::uintmax_t[link /reference/cstdint/uintmax_t.md]
ファイルサイズを取得する。
値がキャッシュされている場合は、それを返す。キャッシュされていない場合は、
- (1) :
std::filesystem::file_size(path())を返す - (2) :
std::filesystem::file_size(path(), ec)を返す
- (1) :
std::filesystem::file_size()関数が例外を送出する可能性がある - (2) : 投げない
#include <iostream>
#include <filesystem>
#include <fstream>
namespace fs = std::filesystem;
int main()
{
fs::create_directory("dir");
fs::create_directory("dir/inner_dir");
{
std::ofstream file{"dir/a.txt", std::ios::binary};
std::uint32_t value = 42;
file.write(reinterpret_cast<char*>(&value), sizeof(value));
}
for (const fs::directory_entry& x : fs::directory_iterator("dir")) {
if (x.is_regular_file()) {
std::cout << x.path() << " : " << x.file_size() << std::endl;
}
}
}- x.file_size()[color ff0000]
- x.path()[link path.md]
- x.is_regular_file()[link is_regular_file.md]
- fs::create_directory[link /reference/filesystem/create_directory.md]
- fs::directory_iterator[link /reference/filesystem/directory_iterator.md]
- std::uint32_t[link /reference/cstdint/uint32_t.md]
"dir/a.txt" : 4
- C++17
- Clang:
- GCC: 8.1
- Visual C++: