2017-03-24 3 views
0

Ich brauche Datei herunterladen und speichern. Ich mit diesem Code (mit Xam.Plugins.DownloadManager und PCLStorage Bibliotheken):PCLStorage - Wie bekomme ich den Pfad zum schreibbaren Ordner?

public static string DownloadNewXml(string LinkToFile, string PathFile) 
    { 
     var downloadManager = CrossDownloadManager.Current; 
     CrossDownloadManager.Current.PathNameForDownloadedFile = new System.Func<IDownloadFile, string>(file => { 
      return PathFile; 
     }); 
     try 
     { 
      var file = downloadManager.CreateDownloadFile(LinkToFile); 
      downloadManager.Start(file); 
      return "ok"; 
     } 
     catch(Exception e) 
     { 
      return e.ToString() ; 
     } 
    } 

Wo pathfile ist: FileSystem.Current.LocalStorage.Path + "file.xml"; Diese Ausnahme Code-Wurf auf Android und UWP - ich kann nicht Datei in diesen Pfad schreiben (FileSystem.Current.LocalStorage.Path). Also ich habe eine Frage. Wie bekomme ich den Pfad zum schreibbaren Ordner für meine Anwendung auf allen Plattformen (Android, UWP, iOS)? Bitte helfen Sie.

Antwort

0

Verwenden Sie Path.Combine(FileSystem.Current.LocalStorage.Path, "file.xml") statt

+0

Es funktioniert für UWP. Auf Android-Wurf Ausnahme: https://zapodaj.net/93c843db31fd5.png.html Vielen Dank für die Hilfe :) – luki

+0

Got it. Um Android-Speicher zum Schreiben zu verwenden, müssen Sie den externen Speicherpfad verwenden. Sie können es von Android-Projekt von DependencyService abrufen. Dieser Code gibt Ihnen den Pfad Ihrer lokalen externen Speicheranwendung zurück: 'Android.App.Application.Context.GetExternalFilesDir (null)'. Es wird etwas wie '/ mnt/sdcard/Android/data/com.IhreFirma.Appname' zurückgeben –

+1

Es funktioniert! Vielen Dank! BTW. Warum ist es nicht in PCLStorage implementiert? – luki

Verwandte Themen