std::experimental::filesystem:: remove, std::experimental::filesystem:: remove_all
From cppreference.net
<
cpp
|
experimental
|
fs
|
Definido en el encabezado
<experimental/filesystem>
|
||
|
bool
remove
(
const
path
&
p
)
;
bool remove ( const path & p, error_code & ec ) ; |
(1) | (filesystem TS) |
|
std::
uintmax_t
remove_all
(
const
path
&
p
)
;
std:: uintmax_t remove_all ( const path & p, error_code & ec ) ; |
(2) | (filesystem TS) |
1)
El archivo o directorio vacío identificado por la ruta
p
se elimina como si fuera mediante la función POSIX
remove
. Los enlaces simbólicos no se siguen (se elimina el enlace simbólico, no su destino).
2)
Elimina el contenido de
p
(si es un directorio) y el contenido de todos sus subdirectorios, recursivamente, luego elimina
p
mismo como si se aplicara repetidamente la función POSIX
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
1)
true
si el archivo fue eliminado,
false
si no existía. La sobrecarga que toma el argumento
error_code
&
devuelve
false
en caso de errores.
2)
Devuelve el número de archivos y directorios que fueron eliminados (que puede ser cero si
p
no existía inicialmente). La sobrecarga que toma el argumento
error_code
&
devuelve
static_cast
<
std::
uintmax_t
>
(
-
1
)
en caso de error.
Excepciones
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 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
especificación:
noexcept
Notas
En sistemas POSIX, esta función normalmente llama a
unlink
y
rmdir
según sea necesario, mientras que en Windows llama a
RemoveDirectoryW
y
DeleteFileW
.
Ejemplo
Ejecutar este código
#include <cstdint> #include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path dir = fs::temp_directory_path(); fs::create_directories(dir / "abcdef/example"); std::uintmax_t n = fs::remove_all(dir / "abcdef"); std::cout << "Deleted " << n << " files or directories\n"; }
Salida posible:
Deleted 2 files or directories
Véase también
|
elimina un archivo
(función) |