Überprüfen, ob eine Datei im Projekt vorhanden sind, in WinRT

Habe ich ein WinRT-Metro-Projekt, das zeigt Bilder, die basierend auf einem ausgewählten Element. Jedoch einige der Bilder ausgewählt wird, existiert nicht. Was möchte ich in der Lage sein zu tun ist, Falle Falle, wo Sie nicht vorhanden sind und zeigt eine alternative.

Hier ist mein code bisher:

internal string GetMyImage(string imageDescription)
{
    string myImage = string.Format("Assets/MyImages/{0}.jpg", imageDescription.Replace(" ", ""));

    //Need to check here if the above asset actually exists

    return myImage;
}

Beispiel-Aufrufe:

GetMyImage("First Picture");
GetMyImage("Second Picture");

So Assets/MyImages/SecondPicture.jpg vorhanden ist, aber Assets/MyImages/FirstPicture.jpg nicht.

Zuerst habe ich gedacht, der mit den WinRT-äquivalent File.Exists(), aber es scheint nicht zu sein. Ohne zu gehen, um den Umfang versuchen, die Datei zu öffnen und fangen einen Fehler, kann ich einfach prüfen, ob entweder die Datei existiert, oder die Datei im Projekt vorhanden sind?

Es sollte außergewöhnlich, dass ein asset, das Sie davon ausgehen, existieren nicht in der Tat existieren. So fangen die Ausnahme.
Ich würde behaupten, dass er nicht davon ausgehen, dass Sie existieren. Er weiß, vor der Zeit, dass es eine Möglichkeit gibt Sie nicht existieren.
Sehr einverstanden mit @mydogisbox. ExistsAsyns() wurde diskutiert, da dev preview aber noch nicht gemacht. Ich würde noch gerne hören, die argumentation hinter...
Ich war gerade auf der Suche an einem ähnlichen problem in meinem toolkit und dachte, es war ein echter Mist, dass Sie die Exists-Methode nicht... vorhanden. Alles, was über race conditions und die Methode als eine schlechte Praxis - was über die Vermögenswerte Anwendung, die sollten sich nicht ändern und wird praktisch nie gewechselt werden? Ich wollte überprüfen, für die Dateien in meinem appx, aber ich konnte nicht finden eine andere Möglichkeit, als zu versuchen, diese zu öffnen und abfangen von Ausnahmen, die, wenn Sie fehlen, das ist wirklich hässlich. Vielleicht ResourceManager konnte helfen, Sie finden?
Fand einige Dinge über den ResourceManager. Sie können prüfen, ob Dateien in das app-Paket so: ResourceManager.Aktuelle.MainResourceMap.ContainsKey("Files/Assets/Logo.png") oder Ressourcen-Manager.Aktuelle.MainResourceMap.ContainsKey("Dateien/WinRTXamlToolkit/Themes/Generic.xaml") - für Dateien von referenzierten Bibliotheken. Dies hat den zusätzlichen Vorteil der Umgang mit geeigneten Ressourcen - wie Bilder, die möglicherweise Hinzugefügt wurden, mit Skala-IDS in Namen, aber nicht an der Basis unvollständiger Namen - z.B. Logo.png vs-Logo.scale-100.png, Logo.scale-140.png, Logo.scale-180.png etc.

InformationsquelleAutor pm_2 | 2012-08-25

Schreibe einen Kommentar