2016-07-21 12 views
1

Ich möchte eine Datei aus dem Asset laden, fand ich die Lösung aber mit Java. Wie kann ich folgenden Java-Code in C# konvertieren?Laden Sie eine Datei von Asset mit Xamarin android

public String loadKMLFromAsset() { 

    String kmlData = null; 
    try { 

     InputStream is = getAssets().open("yourKMLFile"); 

     int size = is.available(); 

     byte[] buffer = new byte[size]; 

     is.read(buffer); 

     is.close(); 

     kmlData = new String(buffer, "UTF-8"); 


    } catch (IOException ex) { 
     ex.printStackTrace(); 
     return null; 
    } 
    return kmlData; 

} 

Antwort

3

Verwenden AssetManager

// Read the contents of our asset 
string content; 
AssetManager assets = this.Assets; 
using (StreamReader sr = new StreamReader (assets.Open ("read_asset.txt"))) 
{ 
    content = sr.ReadToEnd(); 
} 
+1

danke, diese Antwort war so schwer zu finden ... –

+0

Ich sehe, dass dies direkt aus der Xamarin-Dokumentation gezogen wird: https://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/#Reading_Assets Wäre es möglich, diesen Code zu reduzieren, um die Assets-Eigenschaft der Aktivität direkt zu verwenden? –

0

Dieser Code schreibt die Asset-Datei in eine Datei in Ihrem mobilen Dateisystem:

if (!System.IO.File.Exists("yourKMLFile_mobile")) 
     { 

       var s = Resources.OpenRawResource(Resource.Raw.yourKMLFile); 

       FileStream writeStream = new FileStream("yourKMLFile_mobile", FileMode.OpenOrCreate, FileAccess.Write); 
       ReadWriteStream(s, writeStream); 
      } 
Verwandte Themen