如何在 Edge 浏览器的本机主机中获取文件读取权限



我正在尝试从 UWP 中实现的 Edge 浏览器本机主机读取设置文件。此设置文件有一些 URL 列表,用于在扩展中处理它。但是我无法读取本机主机中的文件。我在读取文件时收到以下异常。

System.UnauthorizedAccessException: 'Access to the path "C:\用户\abc\桌面\设置.dat"被拒绝。

string fileName = "C:\Users\Sameer\Desktop\Settings.dat"; 
bool bfileExist = File.Exists(fileName); 
if (bfileExist) { byte[] fileData = File.ReadAllBytes(fileName); }

有没有人知道在 Edge 浏览器的本机主机中读取文件?请让我知道。

UWP 提供了broadFileSystemAccess功能,可以在Windows.Storage namespace中使用 API 访问更广泛的文件。您需要在访问之前添加受限broadFileSystemAccess功能。并请避免使用System.IOapi。 有关更多信息,请参阅以下代码。

var file= await Windows.Storage.StorageFile.GetFileFromPathAsync(fileName);
if (file!= null)
{
byte[] result;
using (Stream stream = await file.OpenStreamForReadAsync())
{
using (var memoryStream = new MemoryStream())
{
stream.CopyTo(memoryStream);
result = memoryStream.ToArray();
}
}
}

我已经使用以下代码解决了这个问题

string fileName = "C:\Users\Sameer\Desktop\Settings.dat";
Windows.Storage.StorageFile file = await Windows.Storage.StorageFile.GetFileFromPathAsync(fileName);
if(file != null)
{
var bufferData = await Windows.Storage.FileIO.ReadBufferAsync(file);               
Windows.Storage.Streams.DataReader dataReader = Windows.Storage.Streams.DataReader.FromBuffer(bufferData);
byte[] fileData = new byte[bufferData.Length];
dataReader.ReadBytes(fileData);
}

相关内容

  • 没有找到相关文章

最新更新