Autor Beitrag
mmp5
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 20.03.11 05:57 
Folgendes Problem:

1. Ich habe einen Ordner in meiner Application erstellt (myTemplate)
2. Ich habe eine Datei test.xml als ressource in diesen Ordner gepackt

Ich muss jetzt den lokalen Pfad dieser Datei kennen um mit dieser Arbeiten zu können ...
Ich will die Datei Manipulieren und in Kopieren und in 3 Ordner auf dem System platzieren ...

Ich dachte ich könnte hier mit "Uri" und "pack" arbeiten:
ausblenden C#-Quelltext
1:
Uri uri = new Uri("pack://application:,,,/myTemplate/test.xml");					


Uri gibt mir jetzt aber nicht den Lokalen Pfad dieser Datei, damit ich diese Manipulieren und in die dementsprechenden Ordner kopieren kann.

Geht das wirklich nicht oder habe ich da nur was falsch verstanden?
Wofür ist pack denn sonst da?



Ich habe das Problem jetzt vorläufig mit folgenden codezeilen gelöst:
ausblenden C#-Quelltext
1:
2:
Uri baseUri = new Uri(System.Reflection.Assembly.GetEntryAssembly().Location);
Uri shader = new Uri(baseUri, "myTemplate/test.xml");
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 20.03.11 11:52 
Ich bin mir nicht sicher, was du vorhast. Eine Ressource ist einkompiliert, die besitzt keinen lokalen Pfad.

_________________
>λ=
mmp5 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 20.03.11 17:26 
Ha, auch mal gut zu wissen ;)

Ich habs jetzt wie Folgt gelöst ...

Das gute an dieser Lösung ist, dass diese für jeden Daten-Typen geeignet ist, einige andere Lösungen haben bei mir nicht funktioniert ...

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
using (Stream inputStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("WpfApp1.myRes.test.xml"))
{
    using (FileStream objFileStream = new FileStream("aaa.xml", FileMode.Create, FileAccess.Write))
    {
        Byte[] abytResource = new Byte[inputStream.Length];
        inputStream.Read(abytResource, 0, (int)inputStream.Length);
        objFileStream.Write(abytResource, 0, (int)inputStream.Length);
    }
}