una subcarpetas que para eliminar desde denegado dejan contenido confirmacion comando carpetas carpeta borrar archivos acceso c++ file-io delete-directory

c++ - subcarpetas - eliminar carpeta desde cmd acceso denegado



Eliminar carpeta y todos los archivos/subdirectorios (4)

¿Cómo puedo eliminar una carpeta con todos sus archivos / subdirectorios (eliminación recursiva) en C ++?


El estándar C ++ no proporciona ningún medio para hacer esto: tendrá que usar un código específico del sistema operativo o una biblioteca multiplataforma como Boost.



Puede usar ftw() , nftw() , readdir() , readdir_r() para recorrer un directorio y eliminar archivos recursivamente.
Pero como ni ftw() , nftw() , readdir() son seguros para subprocesos, recomiendo readdir_r() en su lugar si su programa se ejecuta en un entorno de subprocesos múltiples.


Seriamente:

system( "rm -rf /path/to/directory" )

Tal vez más de lo que está buscando, pero unix específico:

/* Implement system( "rm -rf" ) */ #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <sys/syslimits.h> #include <ftw.h> /* Call unlink or rmdir on the path, as appropriate. */ int rm( const char *path, const struct stat *s, int flag, struct FTW *f ) { int status; int (*rm_func)( const char * ); switch( flag ) { default: rm_func = unlink; break; case FTW_DP: rm_func = rmdir; } if( status = rm_func( path ), status != 0 ) perror( path ); else puts( path ); return status; } int main( int argc, char **argv ) { while( *++argv ) { if( nftw( *argv, rm, OPEN_MAX, FTW_DEPTH )) { perror( *argv ); return EXIT_FAILURE; } } return EXIT_SUCCESS; }