none
Rutas relativas vs rutas absolutas RRS feed

  • Pregunta

  • Hola

    Tengo otra de mis muchas dudas existenciales.:)

    La aplicación que estoy terminando, hace un uso intensivo de ciertos archivos de texto plano.

    Actualmente todas las rutas apuntan a C, ejemplo: C:\MiAplicacion\files\file1.txt.

    Hasta ahi todo muy bien.

    Pero que pasará si el usuario instala el programa en la unidad F, o G, o vete tu a saber.

    Pues que la aplicación buscará los archivos de texto en C, y con que no existen, dará error.

    Así pues como evitarlo?.

    Rutas absolutas o rutas relativas?

    Alguna función que busque en que unidad está instalado el programa y modifique las rutas de los archivos txt?

    Que me aconsejaís?. Debo permitir que el usuario instale donde quiera, o por el contrario el programa que se instale automaticamente en C. Y si no tiene unidad?

    Son muchas dudas amigos, espero que me deís alguna idea.

    Visual basic 2008.

    Windows xp sp3.

    Gracias por adelantado.

    Saludos.

    J69

    miércoles, 14 de abril de 2010 1:28

Respuestas

  • hola

    Rutas absolutas o rutas relativas?

    siempre rutas relativas

    Así pues como evitarlo?.

    para evitarlo usa el

    Application.StartupPath

    este devuelve la ruta donde se encuantra el .exe, asi que a partir de este si los archivos estas en la misma carpeta donde se encuantra la aplicacion puede referencviarlos desde este path

    Dim fullPath = Path.Combine(Application.StartupPath, "files\file1.txt")

     

    es util usar el Path.Combine() para armar cadenas, asi evitas tener que aplicar la logica que verifica si se puso o no el \ final en la cadena

    Nota: recuerda agregar el Imports a System.IO, para usarlo

     

    Que me aconsejaís?. Debo permitir que el usuario instale donde quiera, o por el contrario el programa que se instale automaticamente en C. Y si no tiene unidad?

    debes darle flexibilidad en la instalacion

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Leandro TuttiniMVP miércoles, 14 de abril de 2010 2:14
    • Marcado como respuesta Jota69 miércoles, 14 de abril de 2010 10:07
    miércoles, 14 de abril de 2010 2:14

Todas las respuestas

  • hola

    Rutas absolutas o rutas relativas?

    siempre rutas relativas

    Así pues como evitarlo?.

    para evitarlo usa el

    Application.StartupPath

    este devuelve la ruta donde se encuantra el .exe, asi que a partir de este si los archivos estas en la misma carpeta donde se encuantra la aplicacion puede referencviarlos desde este path

    Dim fullPath = Path.Combine(Application.StartupPath, "files\file1.txt")

     

    es util usar el Path.Combine() para armar cadenas, asi evitas tener que aplicar la logica que verifica si se puso o no el \ final en la cadena

    Nota: recuerda agregar el Imports a System.IO, para usarlo

     

    Que me aconsejaís?. Debo permitir que el usuario instale donde quiera, o por el contrario el programa que se instale automaticamente en C. Y si no tiene unidad?

    debes darle flexibilidad en la instalacion

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Leandro TuttiniMVP miércoles, 14 de abril de 2010 2:14
    • Marcado como respuesta Jota69 miércoles, 14 de abril de 2010 10:07
    miércoles, 14 de abril de 2010 2:14
  • Muchas gracias compañero.

    Con tu sugerencia y un buen mate, me pongo manos a la obra. :)

    Gracias de nuevo.

    Saludos

    J69

    miércoles, 14 de abril de 2010 10:11