Accessing the documents library from a UWP app is frowned upon by Microsoft; however, it is possible. Here is some code that will access the library:
var files = await KnownFolders.DocumentsLibrary.GetFilesAsync(Windows.Storage.Search.CommonFileQuery.OrderByName);
foreach (var f in files)
{
BasicProperties props = await f.GetBasicPropertiesAsync();
This will access the library and get the properties for each file. However, just running it will fail with this error:
So, you’ll probably get this error and, like me (and not for the first time), go looking for it here:
Of course, you won’t find it (because it’s not there), and then you’ll turn to Google. If that brought you here then you’re next step is to open the manifest file directly:
…
<Capabilities>
<uap:Capability Name="documentsLibrary" />
</Capabilities>
</Package>
If there are already Capabilities then just add the line:
<uap:Capability Name="documentsLibrary" />
Note: you need the uap prefix.
And, that’s not all. Next you need to tell it which documents it can access:
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name=".txt">
<uap:DisplayName>Text</uap:DisplayName>
<uap:SupportedFileTypes>
<uap:FileType>.jpg</uap:FileType>
<uap:FileType>.txt</uap:FileType>
<uap:FileType>.gif</uap:FileType>
<uap:FileType>.doc</uap:FileType>
<uap:FileType>.xls</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<uap:Capability Name="documentsLibrary" />
</Capabilities>
</Package>
And that’s it. I can understand why they have all these restrictions, but they can be frustrating for programmers.