Namespaces
Variants

std::experimental::filesystem:: file_size

From cppreference.net
Definido en el encabezado <experimental/filesystem>
std:: uintmax_t file_size ( const path & p ) ;
std:: uintmax_t file_size ( const path & p, error_code & ec ) ;
(1) (filesystem TS)

Devuelve el tamaño del archivo regular p , determinado como si se leyera el miembro st_size de la estructura obtenida mediante POSIX stat (los enlaces simbólicos se siguen).

Intentar determinar el tamaño de un directorio (así como de cualquier otro archivo que no sea un archivo regular o un enlace simbólico) se considera un error.

La sobrecarga que no lanza excepciones devuelve - 1 en caso de errores.

Contenidos

Parámetros

p - ruta a examinar
ec - parámetro de salida para reporte de errores en la sobrecarga no lanzadora

Valor de retorno

El tamaño del archivo, en bytes.

Excepciones

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 especificación:
noexcept

Ejemplo

#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 1
    std::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';
    }        
}

Salida posible:

File size = 1
filesystem error: cannot get file size: Is a directory [/dev]

Véase también

cambia el tamaño de un archivo regular mediante truncamiento o relleno con ceros
(función)
determina el espacio libre disponible en el sistema de archivos
(función)