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