std::filesystem:: remove, std::filesystem:: remove_all
|
Definido en el encabezado
<filesystem>
|
||
|
bool
remove
(
const
std::
filesystem
::
path
&
p
)
;
|
(1) | (desde C++17) |
|
bool
remove
(
const
std::
filesystem
::
path
&
p,
std::
error_code
&
ec
)
noexcept
;
|
(2) | (desde C++17) |
|
std::
uintmax_t
remove_all
(
const
std::
filesystem
::
path
&
p
)
;
|
(3) | (desde C++17) |
|
std::
uintmax_t
remove_all
(
const
std::
filesystem
::
path
&
p,
std::
error_code
&
ec
)
;
|
(4) | (desde C++17) |
remove
. Los enlaces simbólicos no se siguen (se elimina el enlace simbólico, no su destino).
remove
. Los enlaces simbólicos no se siguen (se elimina el enlace simbólico, no su destino).
Contenidos |
Parámetros
| p | - | ruta a eliminar |
| ec | - | parámetro de salida para reporte de errores en la sobrecarga que no lanza excepciones. |
Valor de retorno
error_code&
devuelve
false
en caso de errores.
error_code&
devuelve
static_cast
<
std::
uintmax_t
>
(
-
1
)
en caso de error.
Excepciones
Cualquier sobrecarga no marcada como
noexcept
puede lanzar
std::bad_alloc
si la asignación de memoria falla.
Notas
En sistemas POSIX, esta función normalmente llama a
unlink
y
rmdir
según sea necesario, mientras que en Windows llama a
DeleteFileW
y
RemoveDirectoryW
.
Si p no existiera, esta función retorna false y no reporta un error.
Ejemplo
#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; // crea un archivo que contiene O_O std::cout << "remove(): " << fs::remove(tmp / O_O) << '\n'; // éxito std::cout << "remove(): " << fs::remove(tmp / O_O) << '\n'; // fallo 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"; }
Salida posible:
remove(): true remove(): false remove_all(): 2 files or directories
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3014 | C++17 |
error_code
sobrecarga de
remove_all
marcada noexcept pero puede asignar memoria
|
noexcept eliminado |
Véase también
|
elimina un archivo
(función) |