2016-07-05 20 views
1

ich versuche, eine wirklich einfache AnwendungXamarin - Gemeinsame Klassenbibliothek Zugriff auf System.IO.File

  • Windows-Version
  • Mac Version
  • Portable Klassenbibliothek

erstellen enthält, würde ich Ich möchte den Code (so viel wie möglich) in die Portable Class Library einfügen. Jetzt möchte ich einfach überprüfen, ob eine Datei existiert mit System.IO.File.Exists(), aber das File Objekt ist nicht verfügbar. Ich habe versucht, verschiedene Plattformen anzusprechen, aber ich kann es nicht zum Laufen bringen.

Antwort

0

System.IO.File ist nicht im PCL-Code verfügbar. Sie müssen in plattformspezifischen Code implementieren. Sie müssen auch überprüfen, ob es für jede Plattform existiert. Ich weiß, dass es für Android und iOS funktioniert, habe es noch nie auf Mac und Windows versucht. Obwohl von Xamarins docs es sieht aus wie mindestens Mac hat System.IO.File.

Sobald Sie Methoden in jedem Plattformprojekt haben, können Sie die plattformspezifische Methode aus Ihrem PCL-Code mit Xamarins Dependency Service beziehen.

2

Was @hvaughan3said richtig ist, dass die System.IO.File von Ihrem PCL nicht zur Verfügung, und es muss in jeder Plattform implementiert werden und injizierten in PCL. Das heißt, die gute Nachricht ist, dass wie viele dieser gemeinsamen Anforderungen gibt es bereits ein Plugin, das zu tun, so dass Sie es nicht selbst tun müssen.

Werfen Sie einen Blick auf die folgenden blog post, die beschreibt, wie Sie das PCLStorage Plugin in Ihrem PCL-Projekt verwenden.