std::experimental::filesystem:: file_size
From cppreference.net
<
cpp
|
experimental
|
fs
|
Определено в заголовочном файле
<experimental/filesystem>
|
||
|
std::
uintmax_t
file_size
(
const
path
&
p
)
;
std:: uintmax_t file_size ( const path & p, error_code & ec ) ; |
(1) | (filesystem TS) |
Возвращает размер обычного файла
p
, определяемый как если бы чтением члена
st_size
структуры, полученной с помощью POSIX
stat
(символические ссылки отслеживаются).
Попытка определить размер каталога (а также любого другого файла, не являющегося обычным файлом или символьной ссылкой) считается ошибкой.
Непорождающая исключений перегрузка возвращает - 1 при ошибках.
Содержание |
Параметры
| p | - | путь для проверки |
| ec | - | выходной параметр для сообщения об ошибках в непорождающей перегрузке |
Возвращаемое значение
Размер файла в байтах.
Исключения
The overload that does not take an error_code & parameter throws filesystem_error on underlying OS API errors, constructed with p as the first argument and the OS error code as the error code argument. std:: bad_alloc may be thrown if memory allocation fails. The overload taking an error_code & parameter sets it to the OS API error code if an OS API call fails, and executes ec. clear ( ) if no errors occur. This overload has
noexcept
спецификация:
noexcept
Пример
Запустить этот код
#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'); // создать файл размером 1 std::cout << "File size = " << fs::file_size(p) << '\n'; fs::remove(p); try { fs::file_size("/dev"); // попытка получить размер директории } catch (fs::filesystem_error& e) { std::cout << e.what() << '\n'; } }
Возможный вывод:
File size = 1 filesystem error: cannot get file size: Is a directory [/dev]
Смотрите также
|
изменяет размер обычного файла путем усечения или заполнения нулями
(функция) |
|
|
определяет доступное свободное пространство в файловой системе
(функция) |