2016-09-05 7 views
0


Xamarin.Androidアプリケーションでイメージ(ビットマップ/バイト[])を保存しようとしています。
私はそう返されたパスは、次のようなものになりますピクチャディレクトリへのパスを取得する

private string getPathToFile(string fileName) 
    { 
     File dir = new File(Environment.GetExternalStoragePublicDirectory(Environment.DirectoryPictures), "imgen"); 
     if (dir.Exists()) 
     { 
      dir.Mkdirs(); 
     } 

     File image = new File(dir, fileName); 
     return image.Path; 
    } 

を使用:

"/storage/emulated/0/Pictures/imgen/new.png" 

をしかし、私はAndroidデバイスモニタで確認して、このパスは、エミュレータ上に存在しません。
このフォルダは、エミュレータに実際に存在するmnt/shell/emulated/...フォルダへの何らかのリンクです。
しかし、アプリケーションでこの実際のパスを取得するにはどうすればよいですか?

+0

このコードで何が問題になっていますか?あなたのイメージを正しくエミュレータに書いていないのですか?私はこのような私のSDカード(実際のデバイス)に画像を書き込むために何かを使用し、それは完全に働いた。 –

答えて

5

私は、デバイスのためにこのコードを使用:それは動作していない

 path = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures).AbsolutePath; 
    string myPath= Path.Combine(path, "file.name"); 

エミュレータについて。

+0

これは動作します。問題は、フォルダ "imgen"が作成されていないことでした。 – Freshchris

1

...次のコード

`private void CreateDirectoryForPictures() 
    { 
     App._dir = new File(
      Environment.GetExternalStoragePublicDirectory(
       Environment.DirectoryPictures), "imgen"); 
     if (!App._dir.Exists()) 
     { 
      App._dir.Mkdirs(); 
     } 
    }` 

そしてこのCreateDirectoryForPictures()関数呼び出しを使用してください。作成されたフォルダimgen。

関連する問題