Leer archivo de texto de recursos incrustados en C#

Muhammad Zeeshan 15 febrero 2024
Leer archivo de texto de recursos incrustados en C#

Este tutorial demuestra la lectura de archivos de texto de recursos incrustados mediante el lenguaje de programación C#.

Leer archivo de texto de recursos incrustados

Los archivos incrustados se conocen como recursos incrustados y puede acceder a estos archivos en tiempo de ejecución utilizando la clase Assembly ubicada en el espacio de nombres System.Reflection. Se puede crear un archivo incrustado a partir de cualquier archivo que actualmente forme parte del Proyecto.

Para leer un archivo de texto de recurso incrustado, debemos seguir los pasos a continuación:

  • Agregar carpeta y archivo

    Primero, agregaremos una carpeta llamada archivos al Proyecto. Luego, agregaremos el archivo incrustado dentro de esa carpeta utilizando la opción Agregar -> Elemento existente que se puede encontrar en el Menú contextual del Explorador de soluciones, como se muestra a continuación.

    Nos permitirá añadir el archivo incrustado dentro de la carpeta.

    leer archivo de texto de recurso incrustado - agregar carpeta

    Después de agregar los archivos que se van a incrustar, deberá hacer clic con el botón derecho en Archivo, luego haga clic en Propiedades.

    leer archivo de texto de recurso incrustado - propiedades de archivo

    Ahora, siga la captura de pantalla a continuación para cambiar el valor del atributo Build Action de Content al recurso incrustado.

    leer archivo de texto de recurso incrustado - acción de compilación

  • Crear formulario de Windows

    Primero, agregue un TextBox al formulario de Windows y asígnele el nombre txtTextBox de sus Propiedades.

    leer archivo de texto de recurso incrustado - cuadro de texto

    Ahora, agregue un botón llamado btnText y muestre el texto Read Embed Text en el botón como se muestra a continuación:

    leer archivo de texto de recurso incrustado - botón

  • Escribir código de formulario de Windows

    Primero, tenemos que importar las siguientes bibliotecas:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.Reflection;
    

    Al hacer clic con el botón derecho en el botón Leer texto incrustado para crear su evento, aquí, escribiremos el código del botón de la siguiente manera:

    leer archivo de texto de recurso incrustado - evento de botón

    Crearemos un objeto de método Asamblea llamado ensamblaje:

    var asmbly = Assembly.GetExecutingAssembly();
    

    Luego, crearemos una variable de tipo var llamada filepath. Esta variable contendrá la ruta del archivo de texto.

    var filePath = "ReadEmbedTextbyZeeshan.files.Shani.txt";
    

    Por último, mostraremos el texto del archivo incrustado usando StreamReader, que leerá un archivo de texto de la ruta dada.

    using (Stream s = asmbly.GetManifestResourceStream(filePath)) using (
        StreamReader sr = new StreamReader(s)) {
      txtTextBox.Text = sr.ReadToEnd();
    }
    
  • Código fuente completo
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.Reflection;
    
    namespace ReadEmbedTextbyZeeshan {
      public partial class Form1 : Form {
        public Form1() {
          InitializeComponent();
        }
        private void btnText_Click(object sender, EventArgs e) {
          var asmbly = Assembly.GetExecutingAssembly();
          var filePath = "ReadEmbedTextbyZeeshan.files.Shani.txt";
          using (Stream s = asmbly.GetManifestResourceStream(filePath)) using (
              StreamReader sr = new StreamReader(s)) {
            txtTextBox.Text = sr.ReadToEnd();
          }
        }
      }
    }
    

    Cuando hacemos clic en el botón Leer texto incrustado, mostrará el siguiente resultado:

    Producción:

    leer archivo de texto de recurso incrustado - salida

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Artículo relacionado - Csharp File