none
visualizar un archivo de texto RRS feed

  • Pregunta

  • Hola, buenos días, estoy realizando un programa en visual basic .net donde quiero visualizar en un control label, textbox o richtextbox el contenido de un archivo de texto (txt), ya lo hago con ayuda del OpenFileDialog, pero quiero realizarlo directamente, sin utilizarlo.

    Por Ejemplo, mi archivo de texto se llama "saludo.txt", quiero poner directamente en el código la ruta y el nombre de este archivo para que lo abra, lo lea y el contenido lo aloje en la propiedad text de algún control que lo soporte.

    Podrían apoyarme?, gracias

     
    jueves, 12 de marzo de 2020 17:39

Respuestas

  • Tengo una carpeta en .......bin/debug/apoyos/aquí está "saludo.txt"

    En tiempo de desarrollo es muy fácil, porque cuando ejecutas desde el debugger el currentdirectory te lo apunta al bin/debug, y en consecuencia es sencillo acceder al archivo usando una ruta relativa:

    ....File.ReadAllText("apoyos\saludo.txt")

    Pero esto no es buena idea cuando el programa lo pases a producción y lo instales en un equipo, porque para empezar el currentdirectory es impredecible (depende de cómo el usuario lance el programa), y además la ruta de instalación del programa es (o debería ser) de solo-lectura, por lo que no es válido ubicar archivos de datos bajo la carpeta del programa... A no ser que el "saludo.txt" sea "fijo" y nunca se vaya a modificar en tiempo de ejecución, en cuyo caso sí que puedes ubicarlo junto al programa. Para ello, usa la ruta del ejecutable y concaténala con el nombre del archivo:

    Dim fichero as String = System.IO.Path.Combine(Application.StartupPath, "apoyos\saludo.txt")

    miControl.Text = System.IO.File.ReadAllText(fichero)


    jueves, 12 de marzo de 2020 22:02
  • Muchas gracias por tu aportación y ayuda
    • Marcado como respuesta Anubis II viernes, 13 de marzo de 2020 15:45
    viernes, 13 de marzo de 2020 15:45

Todas las respuestas

  • Lo puedes conseguir con una sola línea de código:

    miControl.Text = System.IO.File.ReadAllText("c:\aqui_la_ruta\saludo.txt")

    jueves, 12 de marzo de 2020 18:07
  • Muchas gracias Alberto, funciono sin problema, puse el archivo "saludo.txt" en la raíz de "C" para no manejar toda la ruta de mi archivo ".txt", hay alguna forma de especificar la ubicación del archivo sin poner toda la ruta?, por ejemplo, mi archivo ejecutable lo tengo en una carpeta del proyecto .......bin/debug/aqui esta la solución

    Tengo una carpeta en .......bin/debug/apoyos/aquí está "saludo.txt"

    Tendrás algún texto donde pueda consultar el manejo de las rutas para ubicar los archivos txt, en este caso los que están en mi carpeta "apoyos", esto por si cambio mi proyecto de ubicación para no perder el direccionamiento de mis archivos de apoyo.

    Gracias

    jueves, 12 de marzo de 2020 18:30
  • Tengo una carpeta en .......bin/debug/apoyos/aquí está "saludo.txt"

    En tiempo de desarrollo es muy fácil, porque cuando ejecutas desde el debugger el currentdirectory te lo apunta al bin/debug, y en consecuencia es sencillo acceder al archivo usando una ruta relativa:

    ....File.ReadAllText("apoyos\saludo.txt")

    Pero esto no es buena idea cuando el programa lo pases a producción y lo instales en un equipo, porque para empezar el currentdirectory es impredecible (depende de cómo el usuario lance el programa), y además la ruta de instalación del programa es (o debería ser) de solo-lectura, por lo que no es válido ubicar archivos de datos bajo la carpeta del programa... A no ser que el "saludo.txt" sea "fijo" y nunca se vaya a modificar en tiempo de ejecución, en cuyo caso sí que puedes ubicarlo junto al programa. Para ello, usa la ruta del ejecutable y concaténala con el nombre del archivo:

    Dim fichero as String = System.IO.Path.Combine(Application.StartupPath, "apoyos\saludo.txt")

    miControl.Text = System.IO.File.ReadAllText(fichero)


    jueves, 12 de marzo de 2020 22:02
  • Muchas gracias por tu aportación y ayuda
    • Marcado como respuesta Anubis II viernes, 13 de marzo de 2020 15:45
    viernes, 13 de marzo de 2020 15:45