androidxamarinxamarin.android

Get path to pictures directory


I try to save an Image (Bitmap/byte[]) with my Xamarin.Android app

I used

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;
}

So the returned path looks something like this:

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

But this path does not exist on the emulator as I checked with the Android Device Monitor.

I read that this folder is some kind of link to a mnt/shell/emulated/... folder, which actually exists on the emulator.

But how can I retrieve this real path in my Application?


Solution

  • I use this code for devices:

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

    For emulators, it does not work.