0

我有一些存储在媒体库中的图像,请在此处查看。现在我需要在使用照片选择器任务选择图像后获取图像的名称。我使用照片选择器任务来选择图像,然后获取图像的路径。我的目的是从路径中获取名称:

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

输出:

照片名称:\Applications\Data\C80566AB-E17E-495C-81A1-3FCAE34D3DEDE\Data\PlatformData\PhotoChooser-a8208960-3597-40fc-9b4f-869afcf822b6.jpg

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

所以:

  1. 我们可以得到图像的名称吗?

  2. 我们该怎么做?

4

2 回答 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();获取可读流即可。

于 2013-03-18T17:52:52.100 回答
0

不可以。您无法获取图片中心中的文件名称。你会得到一份流的副本,它有一个不同的临时名称。

于 2013-03-18T17:30:45.987 回答