Feedback

C# - Inhalt einer als Ressource eingebetteten Text-Datei ausgeben

Veröffentlicht von am 04.08.2010
(2 Bewertungen)
Dieses Snippet soll zeigen, wie man den Inhalt einer einfachen Textdatei, die als Ressource mitgegeben wird, auslesen und ausgeben lassen kann.

VORSICHT: Die Textdatei kann auf verschiedene Arten mit Visual Studio eingebunden werden. Zwei dieser Möglichkeiten sind folgende:
Direkte Einbindung in die Resource-Datei oder separate Einbindung während der Kompilierung. Ich erkläre hier, die Variante mit der separaten Einbindung.

Vorgang:
1. Importiere in Visual Studio eine Text-Datei.
2. Wähle diese dann im Projektmappenexplorer.
3. In den Eigenschaften setzt du für "Buildvorgang" dann den Wert "Eingebettete Ressource".
4. Beim Kompilieren wird die Datei dann automatisch eingebettet.


Sinnvoll ist dies vor allem dann, wenn der Inhalt der Textdatei öfters bearbeitet wird.


Unterstützte VS-Versionen:
Visual Studio ab Version 7.0

Unterstützte Sprachversionen:
C# ab Version 1.0


[Notiz: CH20100804S0002CS10ME]
using System;
using System.IO;
using System.Reflection;

namespace ConsoleApplication1
{
    public class Program
    {
        public static void Main()
        {
            Assembly _Assembly = Assembly.GetExecutingAssembly();
            Stream str = _Assembly.GetManifestResourceStream("ConsoleApplication1.TextFile1.txt");
            StreamReader rd = new StreamReader(str);
            Console.Write(rd.ReadToEnd());
            Console.Read();
        }
    }
}

2 Kommentare zum Snippet

Michel.Eichelberger schrieb am 17.08.2010:
Noch ein kleiner Nachtrag:
Wenn ihr den ManifestResourceStream laden möchtet, müsst ihr den entsprechenden relativen Namespace-Pfad der Ressource angeben. In Visual Studio kann man einen Standardnamespace angeben. Gleichzeitig behandelt VS alle Unterordner im Projekt als eigenen Namespace. Das erste Glied muss also der Standardnamespace sein, das letzte Glied die Datei und alles dazwischen sämtliche Unterordner.

Beispiel (VS-Projektansicht):

ConsoleApplication1 (Projekt-Ordner, VORSICHT: Verwende den Standardnamespace DIESES Projekts)
-TextRessourcen (Unterordner, muss angegeben werden)
--TextFile1.txt (Die Datei)

Der Befehl wäre dann:
_Assembly.GetManifestResourceStream("ConsoleApplication1.TextResources.TextFile.txt");


Bei Fragen, einfach kontaktieren! =)
Michel.Eichelberger schrieb am 17.08.2010:
ups: ich meine natürlich:
_Assembly.GetManifestResourceStream("ConsoleApplication1.TextRessourcen.TextFile.txt");
 

Logge dich ein, um hier zu kommentieren!