En este capítulo del Tutorial de C++ crearemos una función llamada eliminar(string ruta) la cual nos permitirá eliminar tanto archivos como carpetas, reutilizaremos las funciones is_dir y is_file creadas en el capítulo 29, para comprobar si la ruta dada se trata de un archivo o una carpeta, si se trata de un archivo utilizaremos el comando del sistema DEL y si se trata de una carpeta el comando RMDIR.
eliminar.cpp
#include <iostream> #include <dirent.h> //DIR #include <string> using namespace std; bool is_dir(string dir) { DIR * directorio; if (directorio = opendir(dir.c_str())) { closedir(directorio); return true; } else { return false; } } bool is_file(string file) { FILE * archivo; if (archivo = fopen(file.c_str(), "r")) { fclose(archivo); return true; } else { return false; } } void eliminar(string ruta) { string comando; //rmdir o del if (is_dir(ruta)) { comando = "rmdir " + ruta + " /s /q"; system(comando.c_str()); } else if (is_file(ruta)) { comando = "del " + ruta; system(comando.c_str()); } else { cout << "El elemento no existe" << endl; } } void init() { cout << "Indica la ruta de la carpeta o archivo a eliminar: "; string ruta; getline(cin, ruta); eliminar(ruta); init(); } int main(int argc, char *argv[]) { init(); system("PAUSE"); return 0; }
No hay comentarios:
Publicar un comentario