2017-08-12 1 views
0

Verzeichnis:Access-Datei aus den App-Ordnern in UWP

App1 
    - MainPage.xaml.cs 
    - Sample.xaml 

im Versuch, das XAML-Gehalt aus der Probe als String zu tun bekommt, aber es funktioniert nicht, da es die Datei nicht finden kann:

var x = Path.GetFullPath(@"sample.xaml"); 
    FileStream s = new FileStream(x, FileMode.Open); 

Wie kann ich das beheben?

Antwort

1

Ich habe es nicht versucht, versuchen Sie es.

Speichern Sie Ihre Datei an einem Ort zB (Assets Folder) Stellen Sie jetzt sicher, dass die Build-Aktion auf Inhalt gesetzt ist.

var storageFile = await StorageFile.GetFileFromApplicationUriAsync(
new Uri("ms-appx:///Assets/youfile.xaml")); 

Die StorageFile Sie bekommen, ist natürlich schreibgeschützt, aber es kann zu jeder API übergeben werden, die einen StorageFile erwartet.

Wenn Sie lesen möchten, können Sie versuchen.

var result = storageFile.OpenReadAsync() 

StorageFile Documentation

+0

In der Tat, das Xaml ist kompiliert ... verdammt – Asperger

+0

Ich denke, wenn Sie setzen Build Aktion zum Inhalt wird es nicht kompilieren – Eldho

+0

Sollte ich das auch tun? – Asperger

1

Die Quelldateien (.xaml, .cs) sind kompiliert und in der implementierten Anwendung existieren sie nicht als physische Dateien, sodass Sie sie nicht auf diese Weise öffnen können.

+0

oh Mist. Bedeutet das, dass es keine Möglichkeit gibt, XAML-Dateien mit dem XAMLReader dynamisch zu laden? – Asperger

+1

Es gibt einen Weg, zum Beispiel können Sie die Build-Aktion der XAML-Datei auf "Inhalt" setzen und möglicherweise "Kopie zum Ausgabeverzeichnis" auf "Immer kopieren" setzen. Auf diese Weise wird das XAML nicht kompiliert und Sie können normalerweise nicht auf andere Klassen zugreifen. – Jogy

+0

@Jogy Ja, ich denke auch, dass es als Ressourcen in der App verwendet werden kann. – Eldho