|
Página 1 de 2
|
Rutas relativas dentro del ejecutable
Autor |
Mensaje |
Erik Gasca
Usuario
Registrado: Junio 2013
Mensajes: 20
Edad: 36
|
Rutas relativas dentro del ejecutable
Hola que tal, tengo una duda rápida, pareciera fácil pero no encuentro mucho en el foro y la red, también estoy trabajando con archivos y quiero guardar unos datos, pero mediante una ruta relativa:
Ruta = "../BaseDeDatos/prueba.txt"
Archivo = Open Ruta For Write Create
en teoría quiero subir una carpeta a la actual y guardar ese archivo, pero me aparece un error que dice "Acceso prohibido" las carpetas tienen todos los permisos, así que no se que ande haciendo mal, espero me puedan ayudar, saludos.
|
#1 Martes, 30 Diciembre 2014, 07:37 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Rutas relativas dentro del ejecutable
Citar: Ruta = "../BaseDeDatos/prueba.txt"
Eso no es una forma correcta de mencionar un path. ../ se refiere al directorio padre del directorio actual que es... el directorio de la aplicación de gambas, es decir /usr/bin o alguno parecido. Sobre tal directorio no tienes permisos.
Ubícate en el home del usuario con:
Ruta=User.home &/Basededatos/etc. etc.
Con eso no tendrás problemas.
Saludos
|
#2 Martes, 30 Diciembre 2014, 12:39 |
|
|
Erik Gasca
Usuario
Registrado: Junio 2013
Mensajes: 20
Edad: 36
|
Re: Rutas relativas dentro del ejecutable
Gracias por responder, lo estoy trabajando como me comentas con user.home, pero me da un poco de lata, ya que trabajo sobre el mismo proyecto en 3 maquinas diferentes y las direcciones cambian, mi intención con ../ era subir una carpeta a la actual (donde esta mi proyecto) y grabar en otra que cree para contener todas las bases de datos, pensando en no importar donde corra mi programa se guarde todo en la misma carpeta
|
#3 Martes, 30 Diciembre 2014, 18:26 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Rutas relativas dentro del ejecutable
Citar: maquinas diferentes y las direcciones cambian,
Precisamente por eso es necesario utilizar el user.home asegúrate que en la carpeta del usuario existe la carpeta que necesitas para tus tejemanejes (si no existe la creas con user.home, por supuesto) y a partir de ahí funciona en cualquier máquina.
Citar: una carpeta a la actual (donde esta mi proyecto)
Esa carpeta no es la misma en tiempo de diseño, cuando la pruebas con el IDE, que en tiempo de ejecución en la máquina del cliente. Es necesario usar user.home.
Es práctica habitual el crear una carpeta con el nombre user.home &/ "." & Application.name, donde guardas y haces todo lo que la aplicación necesite.
Otra opción es usar temp(), que te da una carpeta dentro de /tmp para lo que quieras, sabiendo que en entorno temporal desaparecen al reiniciar el aparato...
Por otra parte, y como simple curiosidad, BasedeDatos/prueba.txt suena a fichero de texto, no a base de datos. Según lo que quieras hacer, usar texto para eso es una buena práctica o un maldito lío...
Saludos.
|
#4 Martes, 30 Diciembre 2014, 19:00 |
|
|
Erik Gasca
Usuario
Registrado: Junio 2013
Mensajes: 20
Edad: 36
|
Re: Rutas relativas dentro del ejecutable
gracias, seguiré tus consejos, bueno en si no es una base de datos, mi aplicación simula una matriz de leds, creas animaciones y después las cargas por bluetooth a la matriz de leds real, en esa carpeta guardo archivos que me indican que leeds se van a prender, cuanto tiempo dura la animación, coordenadas iniciales y finales, etc.
|
#5 Martes, 30 Diciembre 2014, 19:07 |
|
|
codificador
Analista Programador
Registrado: Junio 2010
Mensajes: 420
Edad: 114 Ubicación:
|
Re: Rutas relativas dentro del ejecutable
Gracias por responder, lo estoy trabajando como me comentas con user.home, pero me da un poco de lata, ya que trabajo sobre el mismo proyecto en 3 maquinas diferentes y las direcciones cambian, mi intención con ../ era subir una carpeta a la actual (donde esta mi proyecto) y grabar en otra que cree para contener todas las bases de datos, pensando en no importar donde corra mi programa se guarde todo en la misma carpeta
no eso no
debes respetar el arbol de directorios
para guardar las bases de datos
crea un directorio en /var
|
#6 Miercoles, 31 Diciembre 2014, 01:11 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Rutas relativas dentro del ejecutable
Citar: crea un directorio en /var
Siendo esto correcto, sin embargo no siempre puede ser aconsejable. La ubicación de /var por su propia naturaleza, debería ser uno de las particiones grandes del disco o discos, porque puede llegar a alcanzar tamaños grandes. Sin embargo dudo que hoy en día nadie tenga eso en cuenta. La práctica más extendida, hasta donde yo he podido ver, es hacer una partición de entre 20 y 40 gigabytes para el sistema y otra con el resto del disco para /home. Usar por defecto /var para lo que fué diseñado puede traer como consecuencia la saturación de la partición raíz. Todo esto sin tener en cuenta el tema de permisos en ejecución del usuario etc. etc.
Creo que lo más correcto es usar por defecto algún lugar de /home y luego dar al usuario opción a cambiar la ubicación dentro del propio programa.
(Tal vez fuese más interesante sacar toda esta conversación a otro hilo más explicativo de lo que estamos hablando, a ver si Jesús puede hacerlo)
Saludos.
última edición por shordi el Miercoles, 31 Diciembre 2014, 12:10; editado 1 vez
|
#7 Miercoles, 31 Diciembre 2014, 12:10 |
|
|
Erik Gasca
Usuario
Registrado: Junio 2013
Mensajes: 20
Edad: 36
|
Re: Rutas relativas dentro del ejecutable
Entiendo que lo que me comentan es una manera más correcta de trabajar con gambas y cualquier programa similar, mi problema surge por que en mi lap y maquina de escritorio trabajo en la carpeta de dropbox, entonces me interesa que cuando hago modificaciones se actualice el proyecto en ambas maquinas sin tener que estar pasando carpetas extras de manera manual, y en la maquina de la escuela no puedo andarle moviendo mucho y ahí no puedo instalar el dropbox, por lo que cuando necesito ocuparla, paso lo que hice por usb. No creí hacer un lío con mi pregunta lo más importante es que no tengo mucho tiempo ocupando gambas y no sabía que la carpeta de diseño no es la misma que en ejecución eso ya me deja claro por que no servia la dirección que ponía. Muchas gracias por responder, aprendí algo nuevo
|
#8 Miercoles, 31 Diciembre 2014, 17:44 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Rutas relativas dentro del ejecutable
Citar: entonces me interesa que cuando hago modificaciones se actualice el proyecto en ambas maquinas sin tener que estar pasando carpetas extras de manera manual
Eso vengo haciéndolo yo desde hace más de un año y funciona de maravilla. Yo tengo el mismo nombre de usuario en ambas máquinas, aunque no creo que eso sea necesario.
Un único detalle es que no uso Dropbox porque no respeta los enlaces simbólicos. Uso Copy, que es lo mismo, pero con 20 gigas gratis.
Ahora Mega, que ofrece 50 gigas, ya tiene el módulo de sincronización para Linux y lo he instalado, pero aún no lo he probado con los enlaces simbólicos.
|
#9 Miercoles, 31 Diciembre 2014, 18:24 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Rutas Relativas dentro del ejecutable
(Tal vez fuese más interesante sacar toda esta conversación a otro hilo más explicativo de lo que estamos hablando, a ver si Jesús puede hacerlo)
Mensajes movidos a un nuevo hilo "Rutas Relativas dentro del ejecutable".
Al realizar una nueva pregunta que tenga poco que ver con un hilo existente, crear un hilo nuevo en lugar de responder a uno antiguo.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#10 Sabado, 03 Enero 2015, 20:09 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|