2016-07-21 10 views
1

Assetからファイルをロードしたいが、解決策が見つかりましたが、Javaを使用しました。どのようにして、次のJavaコードをC#に変換できますか?Xamarinを使ってAssetからファイルをロードする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; 

} 

答えて

3

使用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

はあなたに感謝し、この答えを見つけるのはとても大変でした... –

+0

これはXamarinのドキュメントから直接取り出しています。https://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/#Reading_Assets このコードを減らして、アクティビティのAssetsプロパティを直接使用することに問題はありますか? –

0

このコードは、あなたのモバイルファイルシステム内のファイルにアセットファイルを書き込みます。

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); 
      } 
関連する問題