我正在尝试从 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.IO
api。 有关更多信息,请参阅以下代码。
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);
}