2013-03-18 130 views
0

我有一些图片存储在Media Libary中,请点击此处查看。现在我需要在使用照片选择器任务选择图像后获取图像的名称。我使用照片选择器任务来选择图像,然后获取图像的路径。我的章节目标是从路径获取名称:WP7:获取图像的名称哪些图像存储在Libary图片中?

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

输出:

照片的名字:\应用程序\ DATA \ C80566AB-E17E-495℃,81A1-3FCAE34D3DEDE \ DATA \ PlatformData \ PhotoChooser,a8208960- 3597-40fc-9b4f-869afcf822b6.jpg

之后我选择了相同的图像。它的名称将改变(PhotoChooser-a8208960-3597-40fc-9b4f-869afcf822b6.jpg将改变)。我认为这不是照片的名称。

所以:

  1. 我们能获得图像的名字吗?

  2. 我们该怎么办?

回答

1

你可以得到实际的文件名。使用MediaLibrary为:

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

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

请注意,我指定根画册里面的相册索引。 0将用于示例图片,依此类推。如果您需要抓取图像的内容,只需使用p.GetImage();即可获取可读流。

+0

我做到了。非常感谢! – 2013-03-20 07:59:46

0

不能。您无法获取文件的名称,因为它在图片集线器中。您将获得流的副本并具有不同的临时名称。