我正在处理一个涉及后台任务的UWP项目。后台任务需要检查文档库中的特定文件。
此代码完美无缺。
try
{
StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
SendToast(file.Path + file.Name + " - File Present");
}
catch
{
SendToast("Not Found");
}
这个没有
try
{
StorageFile file = await KnownFolders.DocumentsLibrary.GetFileAsync(fileName);
SendToast(file.Path + file.Name + " - File Present");
}
catch
{
SendToast("Not Found");
}
我还在Package.appxmanifest
中添加了文档库功能 <Capabilities>
<Capability Name="internetClient" />
<uap:Capability Name="documentsLibrary" />
</Capabilities>
和这个
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name=".txt">
<uap:DisplayName>Text</uap:DisplayName>
<uap:SupportedFileTypes>
<uap:FileType>.log</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
我在这里错过了什么吗?
答案 0 :(得分:0)
UWP应用程序运行沙盒并且对文件系统的访问权限非常有限,StorageItems
(即StorageFolder
和StorageFile
)是Windows应用商店应用的规范存储标识符,而不是路径。
存储在我们的本地文件夹(ApplicationData.Current.LocalFolder
)中的数据,我们可以使用该路径,但如果您使用DocumentsLibrary
,MusicLibrary
,我们就无法使用该路径访问该文件,它指的是非文件系统位置,而DocumentsLibrary功能不授予应用程序直接文件系统访问权限。请参阅File access permissions和Rob的blog以了解有关文件访问和在Windows应用商店应用中使用路径的更多信息。