std::experimental::filesystem:: copy_file
|
Défini dans l'en-tête
<experimental/filesystem>
|
||
|
bool
copy_file
(
const
path
&
from,
const
path
&
to
)
;
bool copy_file ( const path & from, const path & to, error_code & ec ) ; |
(1) | (filesystem TS) |
|
bool
copy_file
(
const
path
&
from,
const
path
&
to, copy_options options
)
;
bool copy_file ( const path & from, const path & to, copy_options options, error_code & ec ) ; |
(2) | (filesystem TS) |
copy_options::none
utilisé comme
options
.
copy_file
).
- Si le fichier de destination n'existe pas,
-
- copie le contenu et les attributs du fichier vers lequel from pointe vers le fichier vers lequel to pointe (les liens symboliques sont suivis).
- Sinon, si le fichier de destination existe déjà :
-
- Si to et from sont identiques selon equivalent(from, to) , signaler une erreur.
- Sinon, si aucune des options de contrôle de copy_file n'est définie dans options , signaler une erreur.
-
Sinon, si
copy_options::skip_existingest défini dans options , ne rien faire. -
Sinon, si
copy_options::overwrite_existingest défini dans options , copier le contenu et les attributs du fichier vers lequel from pointe vers le fichier vers lequel to pointe. -
Sinon, si
copy_options::update_existingest défini dans options , copier le fichier uniquement si from est plus récent que to , tel que défini par last_write_time() .
Les surcharges non levantes retournent false si une erreur survient.
Table des matières |
Paramètres
| from | - | chemin vers le fichier source |
| to | - | chemin vers le fichier cible |
| ec | - | paramètre de sortie pour le rapport d'erreurs dans la surcharge non-lancée |
Valeur de retour
true si le fichier a été copié, false sinon.
Exceptions
The overload that does not take an error_code & parameter throws filesystem_error on underlying OS API errors, constructed with from as the first argument, vers as the second 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
Les fonctions impliquent au plus un appel direct ou indirect à
status(to)
(utilisé à la fois pour déterminer si le fichier existe, et, pour l'option
copy_options::update_existing
, son heure de dernière écriture).
Une erreur est signalée lorsque
copy_file
est utilisé pour copier un répertoire : utilisez
copy
pour cela.
copy_file
suit les liens symboliques : utilisez
copy_symlink
ou
copy
avec
copy_options::copy_symlinks
pour cela.
Exemple
#include <experimental/filesystem> #include <fstream> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::create_directory("sandbox"); std::ofstream("sandbox/file1.txt").put('a'); fs::copy_file("sandbox/file1.txt", "sandbox/file2.txt"); // maintenant il y a deux fichiers dans sandbox : std::cout << "file1.txt contient : " << std::ifstream("sandbox/file1.txt").rdbuf() << '\n'; std::cout << "file2.txt contient : " << std::ifstream("sandbox/file2.txt").rdbuf() << '\n'; // échec de copie du répertoire fs::create_directory("sandbox/abc"); try { fs::copy_file("sandbox/abc", "sandbox/def"); } catch (fs::filesystem_error& e) { std::cout << "Impossible de copier sandbox/abc : " << e.what() << '\n'; } fs::remove_all("sandbox"); }
Sortie possible :
file1.txt contient : a file2.txt contient : a Impossible de copier sandbox/abc : copy_file: Is a directory: "sandbox/abc", "sandbox/def"
Voir aussi
|
spécifie la sémantique des opérations de copie
(énumération) |
|
|
copie un lien symbolique
(fonction) |
|
|
copie des fichiers ou répertoires
(fonction) |