C# uwp如何读取指定目录下的文件

C# uwp如何读取指定目录下的文件,c#,file,uwp,C#,File,Uwp,(c#UWP)如何在不使用文件选择器的情况下读取任何目录中的文件? 这是我的代码: var t = Task.Run(() => File.ReadAllText(@"D:\chai.log")); t、 等待() 引发的异常: Access to the path 'D:\chai.log' is denied. 谢谢 对用户文件和文件夹的访问被拒绝。在UWP应用程序中,只能访问用户拾取的文件或文件夹进行读取或写入 要显示供用户选择文件或文件夹的对话框,请编写以下代码: var pi

(c#UWP)如何在不使用文件选择器的情况下读取任何目录中的文件? 这是我的代码:

var t = Task.Run(() => File.ReadAllText(@"D:\chai.log"));
t、 等待()

引发的异常:

Access to the path 'D:\chai.log' is denied.

谢谢

对用户文件和文件夹的访问被拒绝。在UWP应用程序中,只能访问用户拾取的文件或文件夹进行读取或写入

要显示供用户选择文件或文件夹的对话框,请编写以下代码:

var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.FileTypeFilter.Add(".log");

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
    // Application now has read/write access to the picked file
}
有关
FileOpenPicker
的更多详细信息,请阅读


如果您希望将来访问用户这次选择的文件或文件夹,请使用
MostRecentlyUsedList
跟踪这些文件和文件夹

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

var mru = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList;
string mruToken = mru.Add(file, "Some log file");
您可以稍后枚举您的
mru
,以便将来访问文件或文件夹:

foreach (Windows.Storage.AccessCache.AccessListEntry entry in mru.Entries)
{
    string mruToken = entry.Token;
    string mruMetadata = entry.Metadata;
    Windows.Storage.IStorageItem item = await mru.GetItemAsync(mruToken);
    // The type of item will tell you whether it's a file or a folder.
}

有关Windows 10 Build 17093引入的允许应用程序访问当前用户有权访问的文件夹的
MostRecentlyUsedList
的更多详细信息,请阅读

这是一种受限能力。首次使用时,系统将提示 用户必须允许访问。可在“设置”>“隐私”中配置访问权限

文件系统。如果您向商店提交了一个声明此功能的应用程序,则需要提供更多的说明 您的应用程序需要此功能,以及它打算如何使用它。这 此功能适用于Windows.Storage命名空间中的API


MSDN文档


非常感谢您的回复,但我们要求uwp毫无感觉地阅读文件,因此已排除FileOpenPicker的方式。另外,MostRecentlyUsedList也不好,因为我们的要求是只读取指定目录下的文件,而不读取其他目录下的文件,这是实现目标的唯一方法。UWP不允许应用程序在不请求用户权限的情况下访问文件或文件夹。您可以要求用户在第一次运行时选择文件夹,并使用
MostRecentlyUsedList
存储文件夹,这样就无需再次询问用户。感谢您的帮助。让我们重新考虑一下,谢谢!它似乎是我们访问用户文件夹的新API。我的应用程序以最新的Windows为目标,因此我可以试一试。