我在桌面上有一个名为student_names的固定文件夹。它包含子文件夹,每个子文件夹包含其文件。现在我想将这些子文件夹及其相应的文件名存储在数组列表中。怎么可能?
答案 0 :(得分:2)
UWP应用程序无法直接访问文件夹(应用程序文件夹除外),而用户无需明确提供对该文件夹的访问权限(至少一次)。
因此,为了始终能够读取/写入特定文件夹,您需要先要求用户选择特定文件夹。用户选择文件夹后,您可以将其保存到FutureAccessList
,这将为您提供一个令牌,以便直接访问该文件夹(无需用户干预)以供将来使用。
var picker = new FolderPicker();
picker.FileTypeFilter.Add("*");
var folder = await picker.PickSingleFolderAsync();
//add selected folder to FutureAccessList
StorageApplicationPermissions.FutureAccessList.AddOrReplace("futureAccessToken", folder);
从下次启动(或您实施的任何逻辑),您可以访问该文件夹并列出其内容
var folder = await StorageApplicationPermissions.FutureAccessList.
GetFolderAsync("futureAccessToken");
IReadOnlyList<StorageFile> fileList = await folder.GetFilesAsync();
因此,您只需要提供对父文件夹(在您的情况下是student_names)的访问权限,然后您就可以访问其子文件夹和文件。
希望这会有所帮助..
答案 1 :(得分:1)
不幸的是,这可能是不可能的。自从我上次使用UWP应用程序以来已经有一段时间了,但是无法访问几个指定文件夹之外的文件系统(例如,app文件夹和一些其他特殊文件夹,如文档,音乐,图片等,如果你的应用程序声明适当的权限)。您通常无法访问Desktop或C:\文件夹中的文件夹。