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

path relativo en c# para windowsForms

Estas en el tema de path relativo en c# para windowsForms en el foro de .NET en Foros del Web. Estoy empezando a trabajar con archivos de texto en C#, para una aplicacion de windows Forms. Me gustaría leer información desde un txt con StreamReader, ...
  #1 (permalink)  
Antiguo 30/12/2010, 14:29
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 4 meses
Puntos: 101
Pregunta path relativo en c# para windowsForms

Estoy empezando a trabajar con archivos de texto en C#, para una aplicacion de windows Forms. Me gustaría leer información desde un txt con StreamReader, pero tengo un problema de rutas.

Vengo intentando cosas así pero no funcionan:

Código:
string ruta = "..\\..\\"; //Directory.GetCurrentDirectory();
            StreamReader objReader = new StreamReader(ruta+"inscriptos.txt");
Lo que intento con ../../ es salir del directorio bin/debug, porque estoy poniendo mi txt en el directorio raiz. (por cierto, el txt debería ir en la carpeta Resources?)

Como declaro la ruta relativa a mi proyecto para que funcione tanto en un debug como durante la distribución de mi programa? Hay algo en la clase Application que tenga que ver con eso?
  #2 (permalink)  
Antiguo 30/12/2010, 16:34
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 4 meses
Puntos: 101
Respuesta: path relativo en c# para windowsForms

Por cierto, asi si funciona: "..\\..\\inscriptos.txt"

... pero yo quiero declarar la ruta aparte, siendo que se va a usar en muchas funciones. Así que me gustaría resolver el tema de otra manera. Ademàs, esto no va a funcionar a la hora de distribuir el proyecto ...
  #3 (permalink)  
Antiguo 30/12/2010, 17:03
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 9 años, 1 mes
Puntos: 267
Respuesta: path relativo en c# para windowsForms

Ahhh por ejemplo asumamos que creas tu setup y esta se crea en C:/... y junto a ella se crea un tu txt y tu quieres es obtener la ruta de donde se ejecuta y complementarla una cadena directa para que abra un archivo verdad? avisame si ando bien
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #4 (permalink)  
Antiguo 30/12/2010, 17:20
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 4 meses
Puntos: 101
Respuesta: path relativo en c# para windowsForms

Mh.... pensaba en una ruta relativa, pero si... tiene sentido que sea una ruta absoluta. Como puedo generar la ruta absoluta a la carpeta Resources, por ejemplo?
  #5 (permalink)  
Antiguo 30/12/2010, 17:22
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 9 años, 1 mes
Puntos: 267
Respuesta: path relativo en c# para windowsForms

Prueba este code haber si es lo que esperas, cosa que puedes cortarlo y concatenarle lo que deseas...
Código c#:
Ver original
  1. string txt = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
  2. txt = txt.Remove(0, 6);
  3. MessageBox.Show(txt);
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #6 (permalink)  
Antiguo 30/12/2010, 17:31
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 4 meses
Puntos: 101
Respuesta: path relativo en c# para windowsForms

Esto de borrar caracteres es para la carpeta bin/Debug, verdad?

Aun no tengo en claro esto: si yo tengo en mi solución una carpeta con archivos de datos (txt) y quiero accederlos con una ruta relativa tengo que hacer "..\\..\\archivos" para accederlos? Pero eso solo es valido para un debug. Luego del debug ya no tendrìa necesidad de usar la ruta relativa.

En fin, para resolver esto que se hace? Lo de la ruta absoluta parece promisorio. Pero no se resolverlo.
  #7 (permalink)  
Antiguo 30/12/2010, 17:51
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 9 años, 1 mes
Puntos: 267
Respuesta: path relativo en c# para windowsForms

mmm podrias poner talvez un esquema de como esta organizado y hacia donde deseas acceder?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #8 (permalink)  
Antiguo 30/12/2010, 18:14
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 4 meses
Puntos: 101
Respuesta: path relativo en c# para windowsForms

Claro. Gracias por interesarte.

Es mi primer proyecto con archivos de texto. Lo estoy haciendo para practicar como leerlos y escribirlos.

En la carpeta del proyecto tengo los archivos .cs, etc. En la carpeta bin/Debug se generan los archivos para debugear el proyecto desde el IDE. O sea: la estructura es la basica de Visual Studio.

Mi archivo de texto está junto con los archivos .cs

~/Form1.cs
~/inscriptos.txt
~/bin/Debug/ <- aqui se ejecutan los archivos, por eso uso ..\\..\\ para acceder a inscriptos.txt

El script que me diste me devuelve lo mismo que si hiciera "~/". Es decir, me devuelve la carpeta de Debug :(

Adjunto el proyecto por si queres verlo. Yo por ahora pienso que a la hora de distribuirlo tendrè que cambiar la ruta relativa y compilarlo y poner el archivo de texto junto con el ejecutable. Pero eso no debería pasar de manera natural? No se. Ustedes diran.
Archivos Adjuntos
Tipo de Archivo: zip EjercicioListBox 2.2.zip (51,3 KB (Kilobytes), 20 visitas)
  #9 (permalink)  
Antiguo 30/12/2010, 18:15
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 9 años, 1 mes
Puntos: 267
Respuesta: path relativo en c# para windowsForms

enviamelo a mi correo, porque aparece como pendiente de aprobacion.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #10 (permalink)  
Antiguo 30/12/2010, 18:33
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 9 años, 1 mes
Puntos: 267
Respuesta: path relativo en c# para windowsForms

recuerda que si vas a hacer un ejecutable donde colocaras el txt? junto al ejecutable? si es asi tendrias que leer la ruta de donde ejecutas y concatenar el nombre del archivo
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #11 (permalink)  
Antiguo 30/12/2010, 18:37
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 4 meses
Puntos: 101
Respuesta: path relativo en c# para windowsForms

Si... creo que tendría que generar una carpeta y distribuirla... o sino usar el path actual nomas.

Entonces, lo que saco en limpio de todo esto es que para debug necesito una ruta relativa diferente a la ruta que usaré para distribución. Y tendré que ocuparme de esto cuando compile. Es así?
  #12 (permalink)  
Antiguo 30/12/2010, 18:44
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 9 años, 1 mes
Puntos: 267
Respuesta: path relativo en c# para windowsForms

claro si vas a hacer una estuctura de carpetas la tendras que hacer en el debug, como si fuera ya tu aplicacion instalada para que no estes fijando un directorio en duro, pues asi como me pasaste, saca tu exe y pegalo en tu escritorio y luego ejecutalo, no ves tu txt al lado de tu exe , ahora si te paso el code cambiado que hize veras que donde vaya tu ejecutable creara a su lado el txt para leer.

PDT: Ya te envie a tu correo.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #13 (permalink)  
Antiguo 30/12/2010, 19:01
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 4 meses
Puntos: 101
Respuesta: path relativo en c# para windowsForms

Lo recibí y lo estuve viendo, gracias. Entonces, con esto declaramos una ruta absoluta:

private string ruta = Path.GetDirectoryName(System.Reflection.Assembly.G etExecutingAssembly().GetName().CodeBase).Remove(0 ,6) + "/";

Y a la hora de hacer el debug, ponemos el archivo de text en la carpeta debug. Eso va a ser así en proyectos más complejos también? Se me hace que va a ser complicado, pero si es así ya me iré acostumbrando.

Me queda para mañana comprobar si esto genera el mismo resultado:
Directory.GetCurrentDirectory()

Saludos!
  #14 (permalink)  
Antiguo 30/12/2010, 19:06
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 9 años, 1 mes
Puntos: 267
Respuesta: path relativo en c# para windowsForms

aqui lo probé y no genera el mismo resultado, pero bueno por ahi derrepente otra persona con mucha mas experiencia en esto pueda aportar aqui. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #15 (permalink)  
Antiguo 17/10/2016, 14:56
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 8 años
Puntos: 0
Respuesta: path relativo en c# para windowsForms

por si aun lo necesitas quedaría así
string ruta = Directory.GetCurrentDirectory();
ruta = ruta + "\\inscriptos.txt";

Sludos

Etiquetas: path, relativo
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 18:23.