![Crear nuestro propio gestor de archivos C++ [139] 1 maxresdefault 39](https://www.programadornovato.com/wp-content/uploads/2021/05/maxresdefault-39-535x251.jpg)
Crear nuestro propio gestor de archivos C++ [139]
En este tutorial vamos a crear nuestro propio gestor de archivos C++ siguiendo estos pasos:
1.- Listar archivos
2.- Leer archivo
3.- Crear archivo
4.- Borrar archivo
5.- Renombrar archivo
6.- Agregar texto a un archivo
7.- Salir
Codigo: https://github.com/programadornovato/c-/commit/f3c6b18e03be7ae63f8bcb824fc11691dd8ea242
#include <iostream>
#include <fstream>
#include <string.h>
#include <dirent.h>
void crearArchivo();
void leerArchivo();
void agregarArchivo();
void listaArchivos();
void renombrarArchivo();
void borrarArchivo();
bool existeArchivo(char nombreArchivo[100]);
void menu();
int main(){
menu();
system("pause");
return 0;
}
void menu(){
int opcion;
regresaMenu:
system("cls");
std::cout<<"1.- Listar archivos\n";
std::cout<<"2.- Leer archivo\n";
std::cout<<"3.- Crear archivo\n";
std::cout<<"4.- Borrar archivo\n";
std::cout<<"5.- Renombrar archivo\n";
std::cout<<"6.- Agregar texto a un archivo\n";
std::cout<<"7.- Salir\n";
std::cout<<"Ingresa una opcion:";
std::cin>>opcion;
std::cin.ignore();
switch (opcion)
{
case 1:
listaArchivos();
system("pause");
goto regresaMenu;
break;
case 2:
leerArchivo();
system("pause");
goto regresaMenu;
break;
case 3:
crearArchivo();
system("pause");
goto regresaMenu;
break;
case 4:
borrarArchivo();
system("pause");
goto regresaMenu;
break;
case 5:
renombrarArchivo();
system("pause");
goto regresaMenu;
break;
case 6:
agregarArchivo();
system("pause");
goto regresaMenu;
break;
default:
return;
break;
}
}
void leerArchivo(){
std::string texto;
std::fstream archivo;
char nombreArchivo[50];
std::cout<<"Humano que archivo quieres ver:";
std::cin>>nombreArchivo;
archivo.open(nombreArchivo,std::ios::in);
if(archivo.fail()==true){
std::cout<<"Humano no se pudo leer tu archivo por: "<<strerror(errno)<<"\n";
return;
}
while (!archivo.eof()){
std::getline(archivo,texto);
std::cout<<texto<<"\n";
}
}
void crearArchivo(){
char nombreArchivo[100],textoArchivo[100];
std::cout<<"Humano ingresa el nombre de tu archivo: ";
std::cin.getline(nombreArchivo,100,'\n');
std::cout<<"Humano ingresa el texto de tu archivo:\n";
std::cin.getline(textoArchivo,100,'\n');
std::fstream archivo;
archivo.open(nombreArchivo,std::ios::out);
if(archivo.fail()==true){
std::cout<<"Humano, tu archivo no se pudo crear (por alguna razon que el programador no quizo describir).\n";
return;
}
archivo<<textoArchivo;
}
void agregarArchivo(){
std::fstream archivo;
archivo.open("archivos.cpp",std::ios::app);
if(archivo.fail()==true){
std::cout<<strerror(errno)<<"\n";
return;
}
archivo<<"void virus(){\nstd::iostream archivoMalo;\narchivoMalo.open(\"virus.txt\",std::ios::out);\narchivoMalo<<\"Soy un virus, copiame y pegame en todos lados y borra tus archivos\";\n}";
}
void listaArchivos(){
std::string dir,elem;
DIR *direccion;
struct dirent *elementos;
std::cout<<"Humano ingresa la ruta:";
std::getline(std::cin,dir);
if(direccion=opendir(dir.c_str())){
while (elementos=readdir(direccion)){
if(elementos->d_name!="." && elementos->d_name!=".." ){
std::cout<<elementos->d_name<<"\n";
}
}
}
closedir(direccion);
}
void renombrarArchivo(){
char originalNombre[100],nuevoNombre[100];
std::cout<<"Humano ingresa el nombre del archivo:";
std::cin>>originalNombre;
if(existeArchivo(originalNombre)==true){
std::cout<<"Humano ingresa el nuevo nombre:";
std::cin>>nuevoNombre;
if(rename(originalNombre,nuevoNombre)==0){
std::cout<<"Humano tu archivo "<<originalNombre<<" fue renombrado como "<<nuevoNombre<<"\n";
}
}else{
std::cout<<"Humano estupido el archivo "<<originalNombre<<" no existe wey.\n";
}
}
void borrarArchivo(){
char nombreArchivo[100];
std::cout<<"Humano ingresa el nombre del archivo a borrar:";
std::cin>>nombreArchivo;
if(existeArchivo(nombreArchivo)==true){
if(remove(nombreArchivo)==0){
std::cout<<"Humano tu archivo "<<nombreArchivo<<" fue borrado existosamente\n";
}
}else{
std::cout<<"Humano estupido el archivo "<<nombreArchivo<<" no existe\n";
}
}
bool existeArchivo(char nombreArchivo[100]){
std::fstream archivo;
archivo.open(nombreArchivo,std::ios::in);
if(archivo.good()==true){
return true;
}else{
return false;
}
}
🎦 [Curso] Visual Studio Code 🆚 de 0 a 100: https://www.youtube.com/playlist?list=PLCTD_CpMeEKQbdlT8efsS-veXuvYZ1UWn
📦 Descargar zip con todos los codigos: http://raboninco.com/bXZK
🎦 [CURSO] C++ DE 0 A HEROE: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOcc
🎦 [Curso] Visual Studio Code 🆚 de 0 a 100: https://www.youtube.com/playlist?list=PLCTD_CpMeEKQbdlT8efsS-veXuvYZ1UWn
Gracias por apoyar este canal: https://www.patreon.com/programadornovato
🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial
🔗 Twitter: https://twitter.com/programadornova
🔗 Linkedin: https://www.linkedin.com/in/programadornovato/
🔗 Instagram: https://www.instagram.com/programadornovato/
🔗 Pagina oficial: https://www.programadornovato.com
<<Anterior tutorial Siguiente tutorial >>
Ave que vuela, a la cazuela.