1

File not found exception当我尝试使用KnownFolders.CameraRoll属性加载图像文件时,我得到了。该图像位于我的 windows phone 8 的 CameraRoll 中。我还在我的应用程序中启用了以下功能

  <Capability Name="ID_CAP_NETWORKING" />
   <Capability Name="ID_CAP_MEDIALIB_AUDIO" />
   <Capability Name="ID_CAP_MEDIALIB_PLAYBACK" />
   <Capability Name="ID_CAP_SENSORS" />
   <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
   <Capability Name="ID_CAP_MEDIALIB_PHOTO" />
  <Capability Name="ID_CAP_ISV_CAMERA" />

这是我获取图像的代码。

 private async void cameraRoll_btn_Click(object sender, RoutedEventArgs
 e) {
             try {
                 StorageFile file = await Windows.Storage.KnownFolders.CameraRoll.GetFileAsync("WP_20130607_003.jpg");
                 var mem = await file.OpenAsync(FileAccessMode.Read);
                 BitmapImage bitImage = new BitmapImage();
                 bitImage.SetSource(mem.AsStream());
                 ImageView.Source = bitImage;
             }
             catch (Exception ex) {
                 MessageBox.Show(ex.Message);
             }
         }

该图像WP_20130607_003.jpg也出现在相机胶卷中,我正在将应用程序部署到设备上。它引发异常就GetFileAsync行了。任何预兆都可以给我一些暗示我在这里做错了什么吗?

谢谢

4

1 回答 1

0

来自MSDN

Windows Phone 8:此 API 不打算直接从您的代码中使用。

您可以使用PhotoChooserTask让用户选择一张照片。或者,您可以使用MediaLibrary.Pictures以编程方式访问图片。例如

MediaLibrary ml = new MediaLibrary();
var picture = ml.Pictures.Where(x => x.Name.Equals("WP_20130607_003.jpg")).FirstOrDefault();
if(picture != null)  
{
   //get the image stream
   var picStream = picture.GetImage();

   //...
}
于 2013-09-09T14:59:54.533 回答