我正在通过选择器获取文件,并且正在xaml的Image控件中显示该图像。
图像显示完美,但是当我尝试将路径转换为字节时,出现错误
试图给予图片库许可
var picker = new FileOpenPicker();
picker.ViewMode = PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".png");
picker.FileTypeFilter.Add(".jpeg");
var file = await picker.PickSingleFileAsync();
if (file != null) {
var stream = await file.OpenReadAsync();
var bitmap = new BitmapImage();
bitmap.SetSource(stream);
var bytes = File.ReadAllBytes(file.Path); // Error
selectedimage.Source = bitmap;
{“访问路径'some path'被拒绝。”}
答案 0 :(得分:0)
尝试读取AllAllBytes时访问路径
UWP运行在沙箱中,我们无法直接使用路径访问文件,即使我们已经添加了broadFileSystemAccess
功能,也无法在ReadAllTheBytes
名称空间下使用System.IO
。 Pavel Anikhouski的comment是正确的,我们可以使用MemoryStream
将文件转换为字节。
byte[] result;
using (Stream stream = await imageFile.OpenStreamForReadAsync())
{
using (var memoryStream = new MemoryStream())
{
stream.CopyTo(memoryStream);
result = memoryStream.ToArray();
}
}