gpt4 book ai didi

c# - 当我使用打开文件选择器打开 RichEditBox UWP C# 的文本文件时访问被拒绝

转载 作者:行者123 更新时间:2023-11-30 21:35:14 24 4
gpt4 key购买 nike

我想用 Open File Picker 打开一个文本文件并在 RichEditBox 中显示,但是当我选择文件并按下 Ok 时,Visual Studio 显示“Access Denied”,我想知道如何解决这个问题,有我的代码:

var picker = new FileOpenPicker();
picker.ViewMode = PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
picker.FileTypeFilter.Add("*");
picker.FileTypeFilter.Add(".txt");
picker.FileTypeFilter.Add(".text");
picker.FileTypeFilter.Add(".bat");
picker.FileTypeFilter.Add(".js");
picker.FileTypeFilter.Add(".vbs");

StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
StorageFile filepath = await StorageFile.GetFileFromPathAsync(file.Path);
string text = await FileIO.ReadTextAsync(filepath);
RichEditBox1.Document.SetText(Windows.UI.Text.TextSetOptions.None, text);

}

最佳答案

您不需要调用 StorageFile.GetFileFromPathAsync(file.Path),因为您已经在从 PickSingleFileAsync 返回的 file 变量中拥有此 StorageFile:

    StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
string text = await FileIO.ReadTextAsync(file);
RichEditBox1.Document.SetText(Windows.UI.Text.TextSetOptions.None, text);
}

不必要的 GetFileFromPathAsync 可能会引发 AccessDenied 错误,因为 FileOpenPicker 仅通过返回的 StorageFile 提供访问权限,而不会通过其路径直接访问文件。此行为取决于版本,新版本的 Windows 10 将允许通过文件系统 API 进行更直接的访问(请参阅 Build 2017 讨论 UWP Apps file access improvements

关于c# - 当我使用打开文件选择器打开 RichEditBox UWP C# 的文本文件时访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49375292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com