Espacios de nombres
Variantes
Acciones

std::filesystem::remove, std::filesystem::remove_all

De cppreference.com
 
 
 
Definido en el archivo de encabezado <filesystem>
bool remove(conststd::filesystem::path& p );
bool remove(conststd::filesystem::path& p, std::error_code& ec )noexcept;
(1) (desde C++17)
(2) (desde C++17)
1) Se borra el archivo o el directorio vacío identificado por la ruta de acceso p como si fuera por la función remove de POSIX. No se siguen los enlaces simbólicos (se elimina el enlace simbólico, pero no su objetivo).
2) Borra el contenido de p (si es un directorio) y el contenido de todos sus subdirectorios recursivamente, luego borra a p mismo como si se aplicara repetidamente la función remove de POSIX. No se siguen los enlaces simbólicos (se elimina el enlace simbólico, pero no su objetivo).

Contenido

[editar]Parámetros

p - La ruta de acceso a borrar.
ec - El parámetro de salida para informe de errores en la sobrecarga que no lanza excepciones.

[editar]Valor de retorno

1)true si se borró el archivo, false si no existía. La sobrecarga que toma un argumento error_code& devuelve false si ocurren errores.
2) Devuelve el número de archivos y directorios que se borraron (que puede ser cero si, para empezar, p no existía). La sobrecarga que toma un argumento error_code& devuelve static_cast<std::uintmax_t>(-1) si ocurren errores.

[editar]Excepciones

La sobrecarga que no toma un parámetro std::error_code& lanza filesystem::filesystem_error en los errores de la API del sistema operativo subyacente, construido con p como el primer argumento de la ruta de acceso y el código de error del sistema operativo como el argumento del código de error. La sobrecarga que toma un parámetro std::error_code& lo establece en el código de error de la API del sistema operativo si una llamada a la API del sistema operativo falla, y ejecuta ec.clear() si no ocurren errores. Cualquier sobrecarga que no está marcada con noexcept puede lanzar std::bad_alloc si la asignación de memoria falla.

[editar]Notas

En los sistemas POSIX, esta función generalmente llama a unlink y rmdir a medida que sea necesario, y en Windows, a RemoveDirectoryW y DeleteFileW.

[editar]Ejemplo

#include <iostream>#include <cstdint>#include <filesystem>namespace fs = std::filesystem;int main(){ fs::path tmp = fs::temp_directory_path(); fs::create_directories(tmp /"abcdef/ejemplo");std::uintmax_t n = fs::remove_all(tmp /"abcdef");std::cout<<"Se borraron "<< n <<" archivos o directorios\n";}

Posible salida:

Se borraron 2 archivos o directorios

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 3014 C++17 La sobrecarga con error_code de remove_all está marcada con noexcept pero puede asignar memoria. Se eliminó noexcept.

[editar]Véase también

borra un archivo
Original:
erases a file
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función)[editar]
close