• Viernes 29 de Marzo de 2024, 05:38

Autor Tema:  Función system  (Leído 2936 veces)

einsteincora

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Función system
« en: Jueves 22 de Enero de 2009, 13:09 »
0
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é?

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Función system
« Respuesta #1 en: Jueves 22 de Enero de 2009, 13:38 »
0
Para cambiar de unidad no se usa cd. Cosas de Microsoft.

Saludos

einsteincora

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Función system
« Respuesta #2 en: Jueves 22 de Enero de 2009, 13:47 »
0
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

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Función system
« Respuesta #3 en: Jueves 22 de Enero de 2009, 14:10 »
0
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

einsteincora

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Función system
« Respuesta #4 en: Jueves 22 de Enero de 2009, 14:18 »
0
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.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Función system
« Respuesta #5 en: Jueves 22 de Enero de 2009, 15:00 »
0
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

AnimaSubtilis

  • Miembro MUY activo
  • ***
  • Mensajes: 172
  • Nacionalidad: co
    • Ver Perfil
Re: Función system
« Respuesta #6 en: Jueves 22 de Enero de 2009, 15:01 »
0
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.....
A menudo unas pocas horas de «prueba y ensayo» podrán ahorrarte minutos de leer manuales.
[size=150]
Dios nos Otorgo el uno y el cero....y con eso creamos un universo....[/size]

[size=109]↑°°°°ÄNÍMÄ §ÛBTÍLͧ°°°°↓[/size]


m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Función system
« Respuesta #7 en: Jueves 22 de Enero de 2009, 15:34 »
0
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.

einsteincora

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Función system
« Respuesta #8 en: Jueves 22 de Enero de 2009, 16:35 »
0
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.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Función system
« Respuesta #9 en: Jueves 22 de Enero de 2009, 16:43 »
0
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");?

einsteincora

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Función system
« Respuesta #10 en: Jueves 22 de Enero de 2009, 17:08 »
0
Ok, ahora si funciona!!. Muchas gracias!!!!

Un saludo!!