elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Pregunta] ¿Cómo crear una carpeta desde C++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta] ¿Cómo crear una carpeta desde C++?  (Leído 14,350 veces)
Zodiak98

Desconectado Desconectado

Mensajes: 120


Ver Perfil
[Pregunta] ¿Cómo crear una carpeta desde C++?
« en: 31 Agosto 2013, 02:19 am »

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.


En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: [Pregunta] ¿Cómo crear una carpeta desde C++?
« Respuesta #1 en: 31 Agosto 2013, 02:24 am »

Código
  1.   #include <direct.h>
  2.    int main()
  3.    {
  4.          mkdir("c:/msssssssslder");
  5.          return 0;
  6.    }

Fuente: http://www.cplusplus.com/forum/windows/85516/


En línea

Zodiak98

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: [Pregunta] ¿Cómo crear una carpeta desde C++?
« Respuesta #2 en: 31 Agosto 2013, 03:50 am »

Código
  1.   #include <direct.h>
  2.    int main()
  3.    {
  4.          mkdir("c:/msssssssslder");
  5.          return 0;
  6.    }

Fuente: 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:
Código
  1.   #include <direct.h>
  2. int main()
  3. {
  4.          mkdir("xd\xd1.txt");
  5.          return 0;
  6. }

Luego lo hice en el disco local C para especificar una rota completa y corta de esta manera:

Código
  1.   #include <direct.h>
  2. int main()
  3. {
  4.          mkdir("C:\xd\xd1.txt");
  5.          return 0;
  6. }

Pero pues no funciona...
« Última modificación: 31 Agosto 2013, 03:52 am por Zodiak98 » En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: [Pregunta] ¿Cómo crear una carpeta desde C++?
« Respuesta #3 en: 31 Agosto 2013, 05:08 am »

Hola.

El archivo lo podes crear con la función open, un ejemplo:

Código
  1. ...
  2. #include <fcntl.h>
  3.  
  4. ...
  5. {
  6.  int handle;
  7.  
  8.  if ((handle=open("C:\\CARPETA\\PRUEBA.TXT", O_CREAT | O_TEXT)) != -1)
  9.   close(handle);
  10.  else
  11.   perror("Error:");
  12.  ...
  13. }
  14.  

Si usas Linux tendras que cambiar los delimitadores de ruta.

Saludos :)
En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: [Pregunta] ¿Cómo crear una carpeta desde C++?
« Respuesta #4 en: 31 Agosto 2013, 09:41 am »

¡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:

Código:
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!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: [Pregunta] ¿Cómo crear una carpeta desde C++?
« Respuesta #5 en: 31 Agosto 2013, 11:45 am »

gracias por la aclaración do-while.

Hola.

El archivo lo podes crear con la función open, un ejemplo:

Código
  1. ...
  2. #include <fcntl.h>
  3.  
  4. ...
  5. {
  6.  int handle;
  7.  
  8.  if ((handle=open("C:\\CARPETA\\PRUEBA.TXT", O_CREAT | O_TEXT)) != -1)
  9.   close(handle);
  10.  else
  11.   perror("Error:");
  12.  ...
  13. }
  14.  
Si usas Linux tendras que cambiar los delimitadores de ruta.

En vez de eso puedes usar

Código
  1. #include <fstream>
  2.  
  3. int main()
  4. {
  5. std::ofstream o;
  6. o.open("archivo.txt");
  7. o << "ALGUNACOSA";
  8. o.close();
  9. }
En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: [Pregunta] ¿Cómo crear una carpeta desde C++?
« Respuesta #6 en: 31 Agosto 2013, 18:09 pm »

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:
Código
  1. #include <fstream>
  2.  
  3. int main()
  4. {
  5.  std::fstream output("archivo.txt", std::fstream::out);
  6.  //...
  7.  output.close();
  8. }
  9.  
  10. Saludos :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear carpeta desde VB
Programación Visual Basic
Scratz 6 2,335 Último mensaje 12 Septiembre 2006, 10:04 am
por Gorky
Como cierro un programa abierto desde una carpeta especifica?
Scripting
GORSO 4 4,560 Último mensaje 31 Marzo 2009, 21:47 pm
por LauBuru
BLOQUEAC UNA CARPETA/ Y COMO HACERLE DESDE OTRA RUTA
Scripting
GEORGEFRT 3 2,660 Último mensaje 17 Noviembre 2011, 23:02 pm
por Eleкtro
Cómo crear un script que copie archivos de una carpeta a otra (SOLVED)
GNU/Linux
adgellida 0 2,148 Último mensaje 1 Mayo 2012, 14:19 pm
por adgellida
¿Como crear un lanzador a una carpeta en Ubuntu 13.10?
GNU/Linux
horacio_56 0 1,054 Último mensaje 16 Marzo 2014, 19:20 pm
por horacio_56
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines