2016-07-19 12 views
0

私はXamarin AndroidでVisual Studio 2015を使用しています。Xamarin Android System.IO.FileNotFoundException:ファイル例外が見つかりませんでした

JSONデータをファイルから読み込みたいのですが、ファイルプロパティを「ビルド:コンテンツ、出力ディレクトリにコピー:より新しい場合」に設定していても物理的にファイルを見ることができますが、このSystem.IO.FileNotFoundExceptionを取得し続けます。私のビルドフォルダにあります。

私はこのコードを使用します。

var path = @"AedJson.json"; 
using (var streamReader = new StreamReader(path)) 
{ 
    string json = streamReader.ReadToEnd(); 
    //JObject o1 = JObject.Parse(json); 
} 

正確な例外がある:

System.IO.FileNotFoundException:ファイル "/AedJson.json" を見つけることができませんでした。

Error Picture

+0

質問を編集してコードを追加してください。 – mmushtaq

+0

ファイルは、あなたのアプリケーションのルートディレクトリにありますか? – mmushtaq

答えて

2

あなたは、あなたがそれを読むためにAssetManagerを使用することができ、AndroidAssetビルドタイプとして、それを(Assetsフォルダ内の)資産としてあなたXamarin.AndroidプロジェクトにあなたのJSONファイルを追加し、フラグする必要があります。

AssetManager assets = this.Assets; 
using (StreamReader sr = new StreamReader (assets.Open ("AedJson.json"))) 
{ 
    string json = sr.ReadToEnd(); 
} 

参考:Using Android Assets

+0

初めてAndroidアプリをやってくれてありがとうございました。 – MatkoMS

0

私はそれが本当にエラーでわからないんだけど、パスが間違っているようなエラーを見て、それはそうです。実際にファイルを保存している場所を正確に保存する必要がありますか?そうでない場合は、これを試してください:

string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal); 
string filename = Path.Combine(path, "myfile.txt"); 
using (var streamReader = new StreamReader(filename)) 
{ 
    string json = streamReader.ReadToEnd(); 
    //JObject o1 = JObject.Parse(json); 
} 

このパスを使用して保存して読み込みます。私はこのようにすべてのファイルを処理していますが、うまくいくようです。

関連する問題