Foros del Web » Programación para mayores de 30 ;) » .NET »

Rutas a archivos

Estas en el tema de Rutas a archivos en el foro de .NET en Foros del Web. Hola tengo una consulta, yo asi defino una ruta: CrReport.Load("C:\Vet\Vet\InsumosPeluqueria.rpt") Lo cual funciona solo si el usuario instala la aplicacion en esa carpeta, como puedo ...
  #1 (permalink)  
Antiguo 27/07/2010, 23:30
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 9 meses
Puntos: 4
Rutas a archivos

Hola tengo una consulta, yo asi defino una ruta:

CrReport.Load("C:\Vet\Vet\InsumosPeluqueria.rpt")

Lo cual funciona solo si el usuario instala la aplicacion en esa carpeta, como puedo hacerlo de una manera que se adapte?

Probe con Application.StartupPath pero no me lleva a la raiz de la carpeta de mi aplicacion sino que a una subcarpeta donde no estan mis archivos que nesecito.

Saludos y gracias por cualquier sugerencia.
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
  #2 (permalink)  
Antiguo 28/07/2010, 07:45
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: Rutas a archivos

prueba con

string path = System.IO.Path.GetDirectoryName(System.Reflection. Assembly.GetExecutingAssembly().GetName().CodeBase );

otra forma es con
Application.StartupPath

Esto es para C#, pero debe ser la misma variable en vb.net

plch
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #3 (permalink)  
Antiguo 28/07/2010, 12:27
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 9 meses
Puntos: 4
Respuesta: Rutas a archivos

string path = System.IO.Path.GetDirectoryName(System.Reflection. Assembly.GetExecutingAssembly().GetName().CodeBase );

Application.StartupPath


Ambas me llevan a la misma subcarpeta donde no estan mis archivos sino que el ejecutable de la aplicacion.

C:/vet/vet/bin/debug

en vez de ir a c:/vet/vet

Quiza tengo que cambia la ubicacion del ejecutable? pero no veo donde hacer algo asi en las propiedas del projecto.

Saludos.
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
  #4 (permalink)  
Antiguo 28/07/2010, 13:30
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: Rutas a archivos

en ese caso, lo que puedes hacer, es guardar el directorio deseado, en algun archivo en el directorio donde se ejecuta la aplicacion, y leerlo al momento de ocuparlo. o la otra alternativa, es establecerlo en el registry del equipo.

RegistryKey oRegKey = Registry.LocalMachine.OpenSubKey(string.Format("So ftware\\Wow6432Node\\APP\\{0}", "APP"));
AppDomain.CurrentDomain.SetData("sDirectorio", oRegKey.GetValue(LoginRegistryKeys.DitrectorioUsua rio));

plch
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #5 (permalink)  
Antiguo 28/07/2010, 14:14
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 9 meses
Puntos: 4
Respuesta: Rutas a archivos

Hola no me queda muy claro tu idea, me explico nuevamente en caso de que no fui claro: quiero que la manera de ubicar el directorio donde estan los archivos sea dinamica, que no importa donde el usuario decida instalar el programa.

Ya sea que el usuario instale en c:/programa o en d:/programita etc

Por eso creo que no debo guardar una ruta especifica.

Gracias.
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
  #6 (permalink)  
Antiguo 28/07/2010, 14:18
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 3 meses
Puntos: 22
Respuesta: Rutas a archivos

Eso lo puedes solucionar como te lo explicaron arriba

Código:
prueba con 

string path = System.IO.Path.GetDirectoryName(System.Reflection. Assembly.GetExecutingAssembly().GetName().CodeBase );

otra forma es con
Application.StartupPath

Esto es para C#, pero debe ser la misma variable en vb.net

plch
Lo que pasa es que todo te va a quedar en base a la ruta de tu ejecutable.

Saludos
  #7 (permalink)  
Antiguo 28/07/2010, 15:39
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 9 meses
Puntos: 4
Respuesta: Rutas a archivos

He estado probando creando la aplicacion, pero me dice no encuentra la base de datos. Extraño porque cuando lo pruebo desde visual studio si la encuentra.

Asi esta ahora en visual studio mi projecto

C:/vet/vet (aqui estan las forms y demas archivos)
C:/vet/vet/bin/debug (aca esta la base datos)

Entonces no esta todo en el mismo lugar, probe mover la base datos a donde esta todo pero el problema permanece.
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
  #8 (permalink)  
Antiguo 29/07/2010, 06:15
Avatar de dmassive  
Fecha de Ingreso: febrero-2002
Ubicación: Paraná - Entre Ríos - Argentina
Mensajes: 279
Antigüedad: 22 años, 1 mes
Puntos: 7
Respuesta: Rutas a archivos

Es que debes decidirte como vas a trabajar, si con paths absolutos o relativos.

Tu debes usar tu archivo.exe como eje, y pensar la aplicacion en base a el, por lo tanto, no importa donde se instale el programa, siempre funcionara correctamente. Considera que debes colocar tus archivos (no el codigo fuente) en el BIN\DEBUG o BIN\RELEASE segun el caso.
__________________
Blümchen... einfach die rave Prinzessin
http://www.dmassive.com.ar/
  #9 (permalink)  
Antiguo 29/07/2010, 10:00
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: Rutas a archivos

Cita:
Iniciado por Highlander Ver Mensaje
Hola no me queda muy claro tu idea, me explico nuevamente en caso de que no fui claro: quiero que la manera de ubicar el directorio donde estan los archivos sea dinamica, que no importa donde el usuario decida instalar el programa.

Ya sea que el usuario instale en c:/programa o en d:/programita etc

Por eso creo que no debo guardar una ruta especifica.

Gracias.
Primero debes tener un directorio de base de donde partir, ya que no hay variables que te indiquen esto de manera automatica mas que las mencionadas anteriormente.
en base a ese directorio inicial, puedes relativizar la estructura de tu sistema. por lo que leo es una base de datos local en el equipo.
para esto, la idea principal, es que a partir de una ruta estatica, guardada en un archivo, o bien en el registry de la maquina, puedas relativizar el resto de la ruta.
ejemplo:

si tu aplicacion esta en "c:\mis archivos\apps\" este seria tu directorio base desde donde deberas colgar los demas archivos que componen tu aplicacion.
para guardar esta rutra, puedes usar o bioen un archivo xml (por lo sencillo de su estructura) o bien el registry.
revisa en internet como usar estas tecnicas, y podras solucionar el problema de distribucion que comentas.

otra opcion, es que el instalador se encargue de hacer la tarea de, valga la redundancia, instalacion de la aplicacion. la verdad en este tema no conozco mucho, pero creo que seria interesante indagar al respecto.

saludos
plch
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #10 (permalink)  
Antiguo 29/07/2010, 22:08
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 9 meses
Puntos: 4
Respuesta: Rutas a archivos

Hola, gracias por las respuestas la verdad es mi primera aplicacion en net entonces no tengo claro el tema. Lo que esta en la carpeta Bin/Debug sera lo que digamos se instalara en el computador de mi cliente? y estaran los reportes? la base datos?

Porque de ser asi estaria bien la ruta que me da, espero haberlo entendido bien?

Saludos.
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.

Última edición por Highlander; 29/07/2010 a las 22:13
  #11 (permalink)  
Antiguo 29/07/2010, 22:11
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 3 meses
Puntos: 22
Respuesta: Rutas a archivos

En realidad deberías de distribuir lo que se encuentra en la carpeta Release pero esa es la idea, ahi debe de ir todo lo que tu aplicación necesita, como reportes librerias, etc.

Saludos

Etiquetas: rutas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:19.