std::filesystem:: remove, std::filesystem:: remove_all
|
Défini dans l'en-tête
<filesystem>
|
||
|
bool
remove
(
const
std::
filesystem
::
path
&
p
)
;
|
(1) | (depuis C++17) |
|
bool
remove
(
const
std::
filesystem
::
path
&
p,
std::
error_code
&
ec
)
noexcept
;
|
(2) | (depuis C++17) |
|
std::
uintmax_t
remove_all
(
const
std::
filesystem
::
path
&
p
)
;
|
(3) | (depuis C++17) |
|
std::
uintmax_t
remove_all
(
const
std::
filesystem
::
path
&
p,
std::
error_code
&
ec
)
;
|
(4) | (depuis C++17) |
remove
. Les liens symboliques ne sont pas suivis (le lien symbolique est supprimé, pas sa cible).
remove
. Les liens symboliques ne sont pas suivis (le lien symbolique est supprimé, pas sa cible).
Table des matières |
Paramètres
| p | - | chemin à supprimer |
| ec | - | paramètre de sortie pour le rapport d'erreur dans la surcharge non-lancante. |
Valeur de retour
error_code&
retourne
false
en cas d'erreurs.
error_code&
retourne
static_cast
<
std::
uintmax_t
>
(
-
1
)
en cas d'erreur.
Exceptions
Toute surcharge non marquée
noexcept
peut lever
std::bad_alloc
si l'allocation de mémoire échoue.
Notes
Sur les systèmes POSIX, cette fonction appelle généralement
unlink
et
rmdir
selon les besoins, tandis que sous Windows
DeleteFileW
et
RemoveDirectoryW
.
Si p n'existait pas, cette fonction retourne false et ne génère pas d'erreur.
Exemple
#include <cstdint> #include <filesystem> #include <fstream> #include <iostream> int main() { namespace fs = std::filesystem; std::cout << std::boolalpha; fs::path tmp{std::filesystem::temp_directory_path()}; const auto O_O{"O_O"}; std::ofstream{tmp / O_O} << O_O; // crée un fichier contenant O_O std::cout << "remove(): " << fs::remove(tmp / O_O) << '\n'; // succès std::cout << "remove(): " << fs::remove(tmp / O_O) << '\n'; // échec std::filesystem::create_directories(tmp / "abcdef/example"); const std::uintmax_t n{fs::remove_all(tmp / "abcdef")}; std::cout << "remove_all(): " << n << " files or directories\n"; }
Sortie possible :
remove(): true remove(): false remove_all(): 2 files or directories
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 3014 | C++17 |
error_code
surcharge de
remove_all
marquée noexcept mais peut allouer de la mémoire
|
noexcept supprimé |
Voir aussi
|
supprime un fichier
(fonction) |