Pregunta: | 45063 - ¿CóMO ABRIR UN ARCHIVO EN UNA RUTA CON ESPACIOS? |
Autor: | fasto g |
Hola,
estoy usando el Visual C++ 6.0 y en una de las funciones, me necesita abrir un archivo (en realidad lo crea porque antes no existe) y utiliza la función: fopen("..\\dat\\archivo.html","w"); es una ruta dinámica porque necesito poder copiarlo donde sea el programa y que funcione, claro pero en los dos puntitos hay una ruta con espacios "c:\Documents and Settings" y me responde el programa diciendo que no se puede encontrar la ruta "c:\Documents"; ¿Cómo puedo evitar ese problema sin cambiar de ruta? ¿Existe alguna función? ¿alguna sugerencia? Muchas gracias |
Respuesta: | cracksant dk |
simplemente averiguate la forma de obtener nombres cortos
de directorios.. en el caso de documents and setting es:DOCUME~1 QUE SEA DE PROVECHO...! |
Respuesta: | fasto g |
Eso sí lo sabía. El problema es que, por lo visto, en Visual C++ (supongo que en c también) no me deja poner una ruta que contenga espacios, como "c:\documents and settings". Al final, he cambiado de ruta y punto pero ya es más curiosidad científica y cabezonería.
El ejecutable está en una carpeta "bin" y el archivo html en otra distinta, y necesito que sea así. Por eso le pongo ..\\dat\\archivo.html: necesito que salga de la carpeta "bin" y entre en la carpeta "dat". La solución sería, creo, "engañar" a c de alguna forma para poder poner esa ruta. Había pensado que quizás haya alguna manera de coger la ruta de ms-dos, que no hay problema, y actuar a partir de ella pero no sé si eso es factible. ¿Alguna otra sugerencia? Muchas gracias de todas formas! |
Respuesta: | Yadisnel |
Hola, creo que lo que le sucede a tu aplicación es que pierde la ruta pues si lo que quieres es que se ejecute en cualquier parte que lo copies debe hacer lo siguiente:
en ves de: fopen("..\\dat\\archivo.html","w"); pon: fopen(".\\archivo.html","w"); esto hace que busque el fichero donde tienes el ejectable de la aplicación. Si tienes el ejecutable en una carpeta de esta forma: carpeta de la aplicación\ carpeta de datos y en lacarpeta de la aplicación tienes el ejecutable debes poner: fopen(".\\carpeta de datos\\archivo.html","w"); esto hace que a partir de donde está el ejecutable busque carpeta del archivo.html(carpeta de datos) y lo lea. en esencia " .\\" busca a partir del ejecutable. Dime si te funciona o que error te pueda dar. Salu2s ...Yadisnel. |