SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: einsteincora en Jueves 22 de Enero de 2009, 13:09

Título: Función system
Publicado por: einsteincora en Jueves 22 de Enero de 2009, 13:09
Hola a todos, tengo un problema al tratar de usar la función system en un programa en c.

Lo que quiero es cambiar de directorio, pero no funciona. La llamada que hago es la siguiente:

system("cd C:\");

¿Alguién sabría por qué?
Título: Re: Función system
Publicado por: m0skit0 en Jueves 22 de Enero de 2009, 13:38
Para cambiar de unidad no se usa cd. Cosas de Microsoft.

Saludos
Título: Re: Función system
Publicado por: einsteincora en Jueves 22 de Enero de 2009, 13:47
No, bueno, no es para cambiar de unidad si no para ir a la ruta C:, el programa que se ejecuta ya está en C:. Es decir, algo como:

system("cd c:\programas");

tampoco funciona
Título: Re: Función system
Publicado por: m0skit0 en Jueves 22 de Enero de 2009, 14:10
Hm, creo que no te funciona porque cd es un comando de la shell y no un ejecutable. ¿Cuál es tu objetivo al hacer esta llamada?

Además, ¿cómo sabes que no funciona? ¿Cómo lo ejecutas?

Salud
Título: Re: Función system
Publicado por: einsteincora en Jueves 22 de Enero de 2009, 14:18
Lo que quiero es salir del directorio donde está el programa y crear una carpeta en otro sitio, para ir guardando archivos allí.
Ahora mismo estoy depurando con el Visual C++, así que al pasr por esa instrucción y luego hacer un dir, devería hacer el dir del nuevo directorio, pero lo hace del viejo, asi que supongo que no lo ha cambiado.
Título: Re: Función system
Publicado por: m0skit0 en Jueves 22 de Enero de 2009, 15:00
Cita de: "einsteincora"
así que al pasr por esa instrucción y luego hacer un dir, devería hacer el dir del nuevo directorio, pero lo hace del viejo, asi que supongo que no lo ha cambiado.
Obvias que una cosa es el directorio de trabajo y otra el directorio de ejecución.

Cita de: "einsteincora"
Lo que quiero es salir del directorio donde está el programa y crear una carpeta en otro sitio, para ir guardando archivos allí.
No necesitas cambiar de directorio para eso: mkdir() y después fopen() con la ruta que quieras.

Salud
Título: Re: Función system
Publicado por: AnimaSubtilis en Jueves 22 de Enero de 2009, 15:01
Mire esta Funcion...

Puede que le sirva
SetCurrentDirectory() es una api de windows
http://msdn.microsoft.com/es-es/library/system.io.directory.setcurrentdirectory.aspx

Es muy sencilla de utilizar y realmente eficaz...

taluego.....
Título: Re: Función system
Publicado por: m0skit0 en Jueves 22 de Enero de 2009, 15:34
Cita de: "AnimaSubtilis"
SetCurrentDirectory() es una api de windows
Si puedes evitar utilizar APIs y mantenerte estándar, mucho mejor. Utiliza las APIs sólo en caso de último recurso, porque quitan portabilidad al código.

Salud.
Título: Re: Función system
Publicado por: einsteincora en Jueves 22 de Enero de 2009, 16:35
El problema que tengo con mkdir es que al poner system("mkdir C:archivos_nuevos"); me dice lo siguiente:

El nombre de archivo, directorio o etiqueta del volumen no es válido.
Título: Re: Función system
Publicado por: m0skit0 en Jueves 22 de Enero de 2009, 16:43
Cita de: "einsteincora"
system("mkdir C:archivos_nuevos");
Me refiero a la funcion mkdir() de C, no al comando de la shell. ¿Has probado system("mkdir C:\archivos_nuevos");?
Título: Re: Función system
Publicado por: einsteincora en Jueves 22 de Enero de 2009, 17:08
Ok, ahora si funciona!!. Muchas gracias!!!!

Un saludo!!