Функция file_size
Функция file_size возвращает размер файла
в байтах. В качестве параметра мы передаем путь
к файлу, размер которого нужно узнать. Путь
может быть представлен объектом std::filesystem::path,
строкой или строкой в стиле C. Если файл не существует
или произошла ошибка при обращении к нему, функция
выбрасывает исключение std::filesystem::filesystem_error.
Синтаксис
std::uintmax_t file_size(const std::filesystem::path& p);
Пример
Давайте узнаем размер файла test.txt,
который находится в текущей директории:
#include <iostream>
#include <filesystem>
using namespace std;
int main()
{
uintmax_t res = filesystem::file_size("test.txt");
cout << res << endl;
return 0;
}
Результат выполнения кода:
1024
Пример
Давайте узнаем размер файла по полному пути
/var/www/index.html:
#include <iostream>
#include <filesystem>
using namespace std;
int main()
{
filesystem::path p = "/var/www/index.html";
uintmax_t res = filesystem::file_size(p);
cout << res << endl;
return 0;
}
Результат выполнения кода:
2048
Пример
Давайте обработаем ситуацию, когда файл не существует,
с помощью блока try и catch:
#include <iostream>
#include <filesystem>
using namespace std;
int main()
{
try
{
uintmax_t res = filesystem::file_size("nofile.txt");
cout << res << endl;
}
catch (const filesystem::filesystem_error& e)
{
cout << e.what() << endl;
}
return 0;
}
Результат выполнения кода:
"filesystem error: cannot get file size: No such file or directory [nofile.txt]"
Смотрите также
-
функция
exists,
которая проверяет существование файла -
функция
is_regular_file,
которая проверяет, является ли путь обычным файлом -
функция
last_write_time,
которая возвращает время последнего изменения файла -
функция
file_status,
которая возвращает статус файла