Phuc Khac
Phuc Khac

Reputation: 7

WP7: Get image's name which images are stored in Libary picture?

I have some images that are stored in Media Libary, view here. Now I need to get the name of an image after I choose the image by using photo chooser task. I used photo chooser task to select an image and then got the path of the image. My pupose is get the name from the path:

private void button1_Click(object sender, RoutedEventArgs e)
{            
     PhotoChooserTask objPhotoChooser = new PhotoChooserTask();
     objPhotoChooser.Completed += new EventHandler<PhotoResult>(PhotoChooseCall);
      objPhotoChooser.Show();            
}

void PhotoChooseCall(object sender, PhotoResult e)
        {
            switch (e.TaskResult)
            {
                case TaskResult.OK:
                    BinaryReader objReader = new BinaryReader(e.ChosenPhoto);
                    image1.Source = new BitmapImage(new Uri(e.OriginalFileName));
                    MessageBox.Show("Photo's name: " + e.OriginalFileName.ToString());                    
                    break;
                case TaskResult.Cancel:
                    MessageBox.Show("Cancelled");
                    break;
                case TaskResult.None:
                    MessageBox.Show("Nothing Entered");
                    break;
            }
        }

Output:

Photo's name: \Applications\Data\C80566AB-E17E-495C-81A1-3FCAE34D3DEDE\Data\PlatformData\PhotoChooser-a8208960-3597-40fc-9b4f-869afcf822b6.jpg

After I choose the same image. The name of it will change (PhotoChooser-a8208960-3597-40fc-9b4f-869afcf822b6.jpg will change). I think it's not the name of the photo.

So:

  1. Can we get the name of the image?

  2. And how do we do?

Upvotes: 0

Views: 318

Answers (2)

Den
Den

Reputation: 16826

You can get the actual file names. Use the MediaLibrary for that:

MediaLibrary lib = new MediaLibrary();
var collection = lib.RootPictureAlbum;

foreach (var p in collection.Albums[0].Pictures)
    Debug.WriteLine(p.Name);

Notice that I am specifying the album index inside the root picture album. 0 will be for sample pictures, and so on. If you need to grab the contents of the image, just use p.GetImage(); to get the readable stream.

Upvotes: 1

Matt Lacey
Matt Lacey

Reputation: 65564

No. You cannot get the name of the file as it is in the pictures hub. You are given a copy of the stream and that has a different, temporary, name.

Upvotes: 0

Related Questions