Eingebettete Ressourcentextdatei in C# lesen

Muhammad Zeeshan 15 Februar 2024
Eingebettete Ressourcentextdatei in C# lesen

Dieses Tutorial demonstriert das Lesen eingebetteter Ressourcentextdateien mit der Programmiersprache C#.

Eingebettete Ressourcen-Textdatei lesen

Die eingebetteten Dateien werden als eingebettete Ressourcen bezeichnet, und Sie können zur Laufzeit auf diese Dateien zugreifen, indem Sie die Assembly-Klasse verwenden, die sich im Namespace System.Reflection befindet. Eine eingebettete Datei kann aus jeder Datei erstellt werden, die derzeit Teil des Projekts ist.

Um eine eingebettete Ressourcentextdatei zu lesen, müssen wir die folgenden Schritte ausführen:

  • Ordner und Datei hinzufügen

    Zuerst fügen wir dem Projekt einen Ordner namens files hinzu. Dann fügen wir die in diesen Ordner eingebettete Datei hinzu, indem wir die Option Hinzufügen -> Vorhandenes Element verwenden, die im Kontextmenü des Solution Explorer zu finden ist, wie unten gezeigt.

    Dadurch können wir die in den Ordner eingebettete Datei hinzufügen.

    eingebettete Ressourcentextdatei lesen - Ordner hinzufügen

    Nachdem die einzubettenden Dateien hinzugefügt wurden, müssen Sie mit der rechten Maustaste auf Datei klicken und dann auf Eigenschaften klicken.

    eingebettete Ressourcentextdatei lesen - Dateieigenschaften

    Folgen Sie nun dem Screenshot unten, um den Wert des Attributs Build Action von Content auf die eingebettete Ressource zu ändern.

    eingebettete Ressourcentextdatei lesen - Aktion erstellen

  • Erstellen Sie ein Windows-Formular

    Fügen Sie zuerst eine TextBox zum Windows-Formular hinzu und nennen Sie sie txtTextBox aus ihren Eigenschaften.

    Eingebettete Ressourcen-Textdatei lesen - Textbox

    Fügen Sie nun eine Schaltfläche mit dem Namen btnText hinzu und zeigen Sie den Text Read Embed Text auf der Schaltfläche an, wie unten gezeigt:

    Eingebettete Ressourcen-Textdatei lesen - Schaltfläche

  • Schreiben Sie Windows Form Code

    Zuerst müssen wir die folgenden Bibliotheken importieren:

    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;
    

    Indem wir mit der rechten Maustaste auf die Schaltfläche Einbettungstext lesen klicken, um ihr Ereignis zu erstellen, schreiben wir hier den Schaltflächencode wie folgt:

    Eingebettete Ressourcen-Textdatei lesen - Schaltflächenereignis

    Wir erstellen ein Assembly-Methodenobjekt namens assembly:

    var asmbly = Assembly.GetExecutingAssembly();
    

    Dann erstellen wir eine Variable vom Typ var mit dem Namen filepath. Diese Variable enthält den Textdateipfad.

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

    Zuletzt zeigen wir eingebetteten Dateitext mit StreamReader, der eine Textdatei aus dem angegebenen Pfad liest.

    using (Stream s = asmbly.GetManifestResourceStream(filePath)) using (
        StreamReader sr = new StreamReader(s)) {
      txtTextBox.Text = sr.ReadToEnd();
    }
    
  • Vollständiger Quellcode
    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();
          }
        }
      }
    }
    

    Wenn wir auf die Schaltfläche Read Embed Text klicken, wird die folgende Ausgabe angezeigt:

    Ausgang:

    Eingebettete Ressourcentextdatei lesen - Ausgabe

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

Verwandter Artikel - Csharp File