std::experimental::filesystem:: file_size
From cppreference.net
<
cpp
|
experimental
|
fs
|
Défini dans l'en-tête
<experimental/filesystem>
|
||
|
std::
uintmax_t
file_size
(
const
path
&
p
)
;
std:: uintmax_t file_size ( const path & p, error_code & ec ) ; |
(1) | (filesystem TS) |
Retourne la taille du fichier régulier
p
, déterminée comme si en lisant le membre
st_size
de la structure obtenue par
stat
POSIX (les liens symboliques sont suivis).
Tenter de déterminer la taille d'un répertoire (ainsi que de tout autre fichier qui n'est pas un fichier régulier ou un lien symbolique) est considéré comme une erreur.
La surcharge non levante retourne - 1 en cas d'erreurs.
Table des matières |
Paramètres
| p | - | chemin à examiner |
| ec | - | paramètre de sortie pour le rapport d'erreur dans la surcharge non-lançante |
Valeur de retour
La taille du fichier, en octets.
Exceptions
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 **Note:** Le texte a été laissé en anglais car : 1. Il contient des balises HTML qui ne doivent pas être traduites 2. `std::bad_alloc` est un terme spécifique au C++ qui ne doit pas être traduit 3. La structure et le formatage ont été préservés conformément aux instructions La traduction française de "bad_alloc" serait "mauvaise allocation", mais comme demandé, les termes spécifiques au C++ n'ont pas été traduits. 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
spécification :
noexcept
Exemple
Exécuter ce code
#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'; } }
Sortie possible :
File size = 1 filesystem error: cannot get file size: Is a directory [/dev]
Voir aussi
|
modifie la taille d'un fichier régulier par troncation ou remplissage par des zéros
(fonction) |
|
|
détermine l'espace libre disponible sur le système de fichiers
(fonction) |