Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 780
Freshchris Avatar asked Sep 05 '16 13:09

Freshchris


2 Answers

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.

like image 107
FetFrumos Avatar answered Oct 01 '22 04:10

FetFrumos


Please use following code...

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

And this CreateDirectoryForPictures() function call. Then Created folder imgen.

like image 28
Aboobakkar P S Avatar answered Oct 01 '22 05:10

Aboobakkar P S