Hola bueno es qué estaba leyendo sobre "Manejo de Archivos en C++" y pues ya lo domino regularmente pero... quisiera saber cómo crear una carpeta con un fichero adentro, o sea crear la carpeta directamente desde C++, que la cree en caso de que no exista.
#include <direct.h>
int main()
{
mkdir("c:/msssssssslder");
return 0;
}
Fuente: http://www.cplusplus.com/forum/windows/85516/ (http://www.cplusplus.com/forum/windows/85516/)
Cita de: Stakewinner00 en 31 Agosto 2013, 02:24 AM
#include <direct.h>
int main()
{
mkdir("c:/msssssssslder");
return 0;
}
Fuente: http://www.cplusplus.com/forum/windows/85516/ (http://www.cplusplus.com/forum/windows/85516/)
Heheh Gracias! :) Ahora otra pregunta, si yo quisiera crear dentro de esa misma carpeta un fichero o una carpeta anidada a esa, cómo seria?
Intente esto:
#include <direct.h>
int main()
{
mkdir("xd\xd1.txt");
return 0;
}
Luego lo hice en el disco local C para especificar una rota completa y corta de esta manera:
#include <direct.h>
int main()
{
mkdir("C:\xd\xd1.txt");
return 0;
}
Pero pues no funciona...
Hola.
El archivo lo podes crear con la función open, un ejemplo:
...
#include <fcntl.h>
...
{
int handle;
if ((handle=open("C:\\CARPETA\\PRUEBA.TXT", O_CREAT | O_TEXT)) != -1)
close(handle);
else
perror("Error:");
...
}
Si usas Linux tendras que cambiar los delimitadores de ruta.
Saludos :)
¡Buenas!
Para crear directorios anidados, si las funciones de direct.h funcionan igual que aquellas que utilizaba borland 5.x (dir.h si mal no recuerdo), tienes que partir del directorio base e ir creando los subdirectorios anidados uno por uno:
mkdir(base);
mkdir(base/subdir1);
mkdir(base/subdir1/subdir11);
mkdir(base/subdir1/subdir12);
mkdir(base/subdir2);
...
Por cierto, direct.h no es estandar. Se que gcc y derivados la incluyen. ¿El resto de compiladores también tienen esa librería? (supongo que clang también la incluira...)
Por lo que acabo de ver entre los headers que trae MinGW están tanto dir.h como direct.h y ambas incluyen el header io.h. Es en este ultimo header donde encontrarás las funciones que te hacen falta para moverte por los directorios.
¡Saludos!
gracias por la aclaración do-while.
Cita de: ecfisa en 31 Agosto 2013, 05:08 AM
Hola.
El archivo lo podes crear con la función open, un ejemplo:
...
#include <fcntl.h>
...
{
int handle;
if ((handle=open("C:\\CARPETA\\PRUEBA.TXT", O_CREAT | O_TEXT)) != -1)
close(handle);
else
perror("Error:");
...
}
Si usas Linux tendras que cambiar los delimitadores de ruta.
En vez de eso puedes usar
#include <fstream>
int main()
{
std::ofstream o;
o.open("archivo.txt");
o << "ALGUNACOSA";
o.close();
}
Hola Stakewinner00 .
Y tenes toda la razón. ( no sé qué idea se me cruzó que estaba hacíendolo en C ).
En C++ también podría hacer:
#include <fstream>
int main()
{
std::fstream output("archivo.txt", std::fstream::out);
//...
output.close();
}
Saludos :)