none
Leer la ruta completa de un archivo RRS feed

  • Pregunta

  • Hola a todos

    Estoy desarrollando una aplicacion en .NET 2012 y deseo leer o capturar la ruta completa de mi archivo .ini:

    dim fileIni as string = "revit.ini"

    dim ruta as string = "C:\Users\Usuario1\AppData\Roaming\Autodesk\Revit\Autodesk Revit 2014\"

    dim fullname as string = System.IO.Path.Combine(ruta,fileini)

    deseo manipular mi archivo .ini pero el problema es ... si cambia de ruta? o si se instaló en otra carpeta? mi código no es el adecuado.

    existe una opción, propiedad,  o método para capturar o leer la ruta donde se guarda el archivo sin tener que escribirla manualmente?

    Gracias

    viernes, 11 de julio de 2014 17:55

Respuestas

  • Dim rutaBase As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
    Dim rutaFinal As String = "\Autodesk\Revit\Autodesk Revit 2014" 'compañía/producto/versión
    Dim fileini As String = "revit.ini"
    
    Dim fullname As String = System.IO.Path.Combine(rutaBase & rutaFinal, fileini)
    

    Si estás usando las funciones del api de windows para leer/escribir los archivos de inicialización, entonces puedes prescindir de la ruta. Las funciones seguirán su propia estrategia para ubicar/localizar el archivo, que depende de la versión del so. Esto sería absolútamente transparente para vos, salvo el inconveniente de que sólo puedes tener un revit.ini, que todos los usuarios deberían compartir.  
    • Marcado como respuesta MateoDeveloper martes, 15 de julio de 2014 16:36
    lunes, 14 de julio de 2014 23:02

Todas las respuestas

  • "MateoDeveloper" escribió:

    > deseo manipular mi archivo .ini pero el problema es ... si cambia de ruta?
    > o si se instaló en otra carpeta?

    Pero, ¿ese archivo va a estar cambiando siempre de carpeta o desde un primer momento va a permanecer en la misma carpeta?

    > existe una opción, propiedad,  o método para capturar o leer la ruta donde
    > se guarda el archivo sin tener que escribirla manualmente?

    Para "localizar" dónde se encuentra el archivo ini, no conozco ninguna opción, propiedad o método.

    Lo normal y habitual es que el archivo de inicialización se encuentre en la misma carperta que contiene el ejecutable de tu aplicación, en cuyo caso bastaría con ejecutar:

            Dim fileIni As String = "revit.ini"
            Dim ruta As String = IO.Path.Combine(Application.StartupPath, fileIni)
    
            MessageBox.Show(ruta)
    

    Un saludo


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    viernes, 11 de julio de 2014 18:03
    Moderador
  • Hola Enrique.

    Gracias por tu respuesta, seguí tu consejo sin embargo me aparece este error, creo que me falta importar una clase o algo por el estilo, soy novato en .NET, puedes ayudarme?

    Gracias.

    Saludos!

    lunes, 14 de julio de 2014 15:22
  • "MateoDeveloper" escribió:

    > seguí tu consejo sin embargo me aparece este error, creo que me falta
    > importar una clase o algo por el estilo, soy novato en .NET, puedes ayudarme?

    Pero, ¿qué tipo de aplicación estás desarrollando? Si no es una aplicación Windows Forms la que hace uso del archivo de inicialización, cosa que tenías que haber dicho desde un primer momento, mejor será que te olvides de utilizar la propiedad compartida StartupPath de la clase Application.

    Fíjate lo que indicaste en tu pregunta inicial:

    > Estoy desarrollando una aplicacion en .NET 2012 y deseo leer o capturar
    > la ruta completa de mi archivo .ini:

    Si no dices nada más y te limitas ÚNICAMENTE a decir que "estás desarrollando una aplicación en .NET 2012", como comprenderás "adivino" no soy, por lo que en principio entiendo que estás desarrollando una aplicación para formularios Windows, que es lo que suelen desarrollar el 90 por 100 o más de los usuarios que frecuentan este foro. :-(


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    lunes, 14 de julio de 2014 16:12
    Moderador
  • Buenas, yo he tenido esos problemas y buscando encontré esto.

    Por ejemplo si tienes tu archivo en la carpeta "Resources" una forma de acceder a el seria la siguiente:

    string Path;

    Path = "..\\..\\Resources\\revit.ini"


    Espero que te sirva. 

    Saludos

    lunes, 14 de julio de 2014 22:06
  • Dim rutaBase As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
    Dim rutaFinal As String = "\Autodesk\Revit\Autodesk Revit 2014" 'compañía/producto/versión
    Dim fileini As String = "revit.ini"
    
    Dim fullname As String = System.IO.Path.Combine(rutaBase & rutaFinal, fileini)
    

    Si estás usando las funciones del api de windows para leer/escribir los archivos de inicialización, entonces puedes prescindir de la ruta. Las funciones seguirán su propia estrategia para ubicar/localizar el archivo, que depende de la versión del so. Esto sería absolútamente transparente para vos, salvo el inconveniente de que sólo puedes tener un revit.ini, que todos los usuarios deberían compartir.  
    • Marcado como respuesta MateoDeveloper martes, 15 de julio de 2014 16:36
    lunes, 14 de julio de 2014 23:02
  • Hola Sopita

    Gracias por el apoyo!.....me has ayudado como no tienes idea.....puse en practica tu sugerencia y funciono perfectamente!!!!!

    SALUDOS!.

    martes, 15 de julio de 2014 16:37