FileStream打开图像" System.UnauthorizedAccessException"拒绝访问该路径

时间:2014-03-31 18:10:52

标签: c# windows-phone-8

我正在写一个wp8应用。几天我有问题困扰我。 我想将照片上传到服务器。我从相册中选择了一张照片,我使用FileStream上传它,但我无法打开它。它表示拒绝访问该路径。

PhotoChooserTask photoChooserTask = new PhotoChooserTask();
photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);

void photoChooserTask_Completed(object sender, PhotoResult e)
{
      if (e.TaskResult == TaskResult.OK)
      {
          // show the img
          BitmapImage bmp = new BitmapImage();
          bmp.SetSource(e.ChosenPhoto);
          ShowPhoto.Source = bmp;

          // get path of img
          string imagePath = e.OriginalFileName;
      }
}

上传

if (imagePath != null)
{
     FileStream fs = new FileStream(imagePath, FileMode.Open, FileAccess.Read);
     StreamContent imageContent = new StreamContent(fs);
}

在行:FileStream fs = new FileStream(imagePath,FileMode.Open,FileAccess.Read); 我遇到了一个错误。

  

System.UnauthorizedAccessException:访问路径&#39; C:\ Data \ Users \ Public \ Pictures \ Camera Roll \ WP_20140331_001.jpg&#39;被拒绝。

我在WMAppMainfest.xml中选择了函数`D_CAP_MEDIALIB_PHOTO

2 个答案:

答案 0 :(得分:1)

我认为你不能像那样访问相机胶卷。您可能必须使用MediaLibrary类。此外,您在PhotoChooserTask_Completed事件处理程序中有图像。您不必进入文件流。

答案 1 :(得分:0)

我看到你自己解决了问题 仍然没有在这里解决代码 我希望有人能用它:)

  var imageAsByteArray = File.ReadAllBytes(imagePath);

  // I use as example a pictureBox:
  pictureBox1.Image = byteArrayToImage(imageAsByteArray);

  // Or safe/copy/replace it:
  File.WriteAllBytes(picture_Path, imageAsByteArray);

您也可以立即删除(新)图片! (如果你想)