C# uwp如何读取指定目录下的文件
(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
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为目标,因此我可以试一试。