std::experimental::filesystem:: resize_file
|
Défini dans l'en-tête
<experimental/filesystem>
|
||
|
void
resize_file
(
const
path
&
p,
std::
uintmax_t
new_size
)
;
void resize_file ( const path & p, std:: uintmax_t new_size, error_code & ec ) ; |
(filesystem TS) | |
Modifie la taille du fichier régulier nommé par p comme le ferait la fonction POSIX truncate : si la taille du fichier était précédemment supérieure à new_size , la partie excédentaire du fichier est supprimée. Si le fichier était précédemment plus petit que new_size , la taille du fichier est augmentée et la nouvelle zone apparaît comme remplie de zéros.
Table des matières |
Paramètres
| p | - | chemin à redimensionner |
| new_size | - | taille que le fichier aura désormais |
| ec | - | paramètre de sortie pour le rapport d'erreurs dans la surcharge non-lancante |
Valeur de retour
(aucun)
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 à traduire était uniquement "Do not translate any HTML tags or attributes. Preserve the original formatting.Do not translate text within
,
,
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
Notes
Sur les systèmes qui prennent en charge les fichiers épars, l'augmentation de la taille du fichier n'augmente pas l'espace qu'il occupe sur le système de fichiers : l'allocation d'espace se produit uniquement lorsque des octets non nuls sont écrits dans le fichier.
Exemple
Démontre l'effet de la création d'un fichier creux sur l'espace libre.
#include <experimental/filesystem> #include <fstream> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path p = fs::temp_directory_path() / "example.bin"; std::ofstream(p).put('a'); std::cout << "File size: " << fs::file_size(p) << '\n' << "Free space: " << fs::space(p).free << '\n'; fs::resize_file(p, 64*1024); // resize to 64 KB std::cout << "File size: " << fs::file_size(p) << '\n' << "Free space: " << fs::space(p).free << '\n'; fs::remove(p); }
Sortie possible :
File size: 1 Free space: 31805444096 File size: 65536 Free space: 31805444096
Voir aussi
|
retourne la taille d'un fichier
(fonction) |
|
|
détermine l'espace libre disponible sur le système de fichiers
(fonction) |