如何获取所有子文件夹及其文件 - UWP

时间:2017-11-17 06:08:30

标签: c# uwp

我在桌面上有一个名为student_names的固定文件夹。它包含子文件夹,每个子文件夹包含其文件。现在我想将这些子文件夹及其相应的文件名存储在数组列表中。怎么可能?

2 个答案:

答案 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:\文件夹中的文件夹。