C sharp - Obtener Ruta Carpeta winform C#

 
Vista:
sin imagen de perfil

Obtener Ruta Carpeta winform C#

Publicado por Carlos (3 intervenciones) el 11/06/2014 17:19:45
En mi proyecto winform, he creado una carpeta llamada Archivo, dentro tengo un archivo de texto llamado Log.txt

Tengo problemas al obtener la ruta de ese archivo. A continuacion les muestro mi codigo:

string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
string dbPath = @"Archivos\Log.txt";
string fullpath = Path.Combine(appPath, dbPath);

Los resultados son los siguientes:
appPath = "C:\\Users\\T_BIBLIOTECA\\Desktop\\Batch_Biblioteca\\EnvioNotificaciones\\bin\\Debug"
dbPath = "Archivos\\Log.txt"
fullpath = "C:\\Users\\T_BIBLIOTECA\\Desktop\\Batch_Biblioteca\\EnvioNotificaciones\\bin\\Debug\\Archivos\\Log.txt"

El resultado de appPath me da como resultado la ruta completa hasta el debug cuando la carpeta Archivo esta al mismo nivel que la carpeta bin. Deberia devolverme:

fullpath = "C:\\Users\\T_BIBLIOTECA\\Desktop\\Batch_Biblioteca\\EnvioNotificaciones\\Archivos\\Log.txt", osea, eliminar \\bin\\Debug.

ahora, eso lo puedo arreglar obteniendo el fullpath y hacerle .Substring(0, 67); quitandole el bin y debug y obteniendo satisfactoriamente la ruta que deseo, pero el problema esta en que al momento de pasar a produccion, va a ocurrir un error, ya que del fullpath lo leo del 0 a 67, pero eso cambia ya que la Carpeta donde esta el codigo fuente, es decir "BATCH_BIBLIOTECA", no siempre va a ser la misma. le pueden cambiar de nombre y ya no seria de 0 a 67, sino de 0 a un numero menor a 67.

Espero me hayan entendido. De todas maneras seguire intentando.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Obtener Ruta Carpeta winform C#

Publicado por Pico (114 intervenciones) el 11/06/2014 18:01:32
Pero tú lo que quieres es que ese directorio con el archivo esté donde esté el exe. En producción pones el exe en un sitio y creas ese directorio con el log en ese mismo sitio, ¿no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Obtener Ruta Carpeta winform C#

Publicado por Carlos (3 intervenciones) el 11/06/2014 18:16:15
Claro eso mismo, Para eso, simplemente tendria que colocar como fullpath = @"Archivos\\Log.txt" y asi funciona en produccion, pero ya no funciona aqui en mi ordenador.

Ya lo arregle, como solo queria la ruta de la carpeta de proyectos. tenia Esto:
string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
me devuelve "C:\\Users\\T_BIBLIOTECA\\Desktop\\Batch_Biblioteca\\EnvioNotificaciones\\bin\\Debug"

entonces solo le hice un replace \\bin\\debug, es decir:
string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location).replace("\\bin\\Debug","")
me devuelve "C:\\Users\\T_BIBLIOTECA\\Desktop\\Batch_Biblioteca\\EnvioNotificaciones"

Justo lo que necesitaba. El .replace es un metodo el cual tiene 2 parametros, el primero es el caracter o valor que quieres reemplazar y el 2do parametro es el caracter o valor que va a ser el que reemplazara al primer parametro
si hubiese querido que la ruta me traiga "\Prueba" luego de EnvioNotififaciones colocaria>
replace("\\bin\\Debug","\Prueba") y el resultado seria:

"C:\\Users\\T_BIBLIOTECA\\Desktop\\Batch_Biblioteca\\EnvioNotificaciones\Prueba"

Pregunta resulta :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Obtener Ruta Carpeta winform C#

Publicado por Pico (114 intervenciones) el 11/06/2014 18:21:29
Pero no necesitas un Replace. En tu ordenador el exe esta es bin\debug; en producción está donde sea. Creas ahí el directorio y ya está. En tu ordenador el exe está donde le pongas al vs la ruta de salida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Obtener Ruta Carpeta winform C#

Publicado por Carlos (3 intervenciones) el 11/06/2014 18:29:50
Si lo se, pero a mi no me interesa encontrar el .exe, a mi me interesa encontrar el file que esta dentro de una carpeta que se encuentra dentro de mi proyecto, y esa carpeta no estará en bin\debug.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rosangela
Val: 4
Ha disminuido su posición en 12 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Obtener Ruta Carpeta winform C#

Publicado por Rosangela (1 intervención) el 30/04/2021 19:37:09
Vaya, sinceramente tenía un pequeño conflicto en mi código y tu respuesta con el uso del "Replace" me ha resultado muy útil. Gracias, Carlos :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar