我有一些存储在Media 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;
}
}
输出:
照片名称:\ Applications \ Data \ C80566AB-E17E-495C-81A1-3FCAE34D3DEDE \ Data \ PlatformData \ PhotoChooser-a8208960-3597-40fc-9b4f-869afcf822b6.jpg
我选择相同的图像后。它的名称将改变( PhotoChooser-a8208960-3597-40fc-9b4f-869afcf822b6.jpg 将改变)。我认为这不是照片的名称。
所以:
我们可以获取图片的名称吗?
我们该怎么做?
答案 0 :(得分: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();
来获取可读流。
答案 1 :(得分:0)
没有。您无法获取文件的名称,因为它在图片中心。您将获得该流的副本,并且该名称具有不同的临时名称。