| Technical Specification | ||||
| Filesystem library(filesystem TS) | ||||
| Library fundamentals(library fundamentals TS) | ||||
| Library fundamentals 2(library fundamentals TS v2) | ||||
| Library fundamentals 3(library fundamentals TS v3) | ||||
| Extensions for parallelism(parallelism TS) | ||||
| Extensions for parallelism 2(parallelism TS v2) | ||||
| Extensions for concurrency(concurrency TS) | ||||
| Extensions for concurrency 2(concurrency TS v2) | ||||
| Concepts(concepts TS) | ||||
| Ranges(ranges TS) | ||||
| Reflection(reflection TS) | ||||
| Mathematical special functions(special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
| Classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| File types | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <experimental/filesystem> | ||
std::uintmax_t file_size(const path& p); std::uintmax_t file_size(const path& p, error_code& ec); | (1) | (filesystem TS) |
Returns the size of the regular filep, determined as if by reading thest_size member of the structure obtained by POSIXstat (symlinks are followed).
Attempting to determine the size of a directory (as well as any other file that is not a regular file or a symlink) is treated as an error.
The non-throwing overload returns returns-1 on errors.
Contents |
| p | - | path to examine |
| ec | - | out-parameter for error reporting in the non-throwing overload |
The size of the file, in bytes.
#include <experimental/filesystem>#include <fstream>#include <iostream>namespace fs= std::experimental::filesystem; int main(){ fs::path p= fs::current_path()/"example.bin";std::ofstream(p).put('a');// create file of size 1std::cout<<"File size = "<< fs::file_size(p)<<'\n'; fs::remove(p); try{ fs::file_size("/dev");// attempt to get size of a directory}catch(fs::filesystem_error& e){std::cout<< e.what()<<'\n';}}
Possible output:
File size = 1filesystem error: cannot get file size: Is a directory [/dev]
| changes the size of a regular file by truncation or zero-fill (function)[edit] | |
| determines available free space on the file system (function)[edit] |