Доступ UWP запрещен к StorageFile
Я получаю отказ в доступе при использовании
StorageFile.GetFileFromPathAsync(filePath)
Из других постов и некоторой документации, которую я читаю, UWP может получить доступ только к видеоматериалам, видео (папкам, связанным с профилем), если объявлен Package.appxmanifest
так далее...
С FilePicker у меня нет проблем с доступом к этим местам, но StorageFile.GetFileFromPathAsync
автоматически загружать эти файлы в список при загрузке страницы.
Как я могу использовать эту функцию для загрузки файлов за пределы известных папок video lib, videos и т. Д.
1 ответ
Вы можете использовать этот метод только для доступа к файлам на тех безопасных путях, к которым имеют доступ приложения UWP. Если вы получаете доступ к другому местоположению с помощью средства выбора файлов или папок, вы должны кэшировать доступ к нему с помощью Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList
, Этот API позволяет хранить существующий экземпляр StorageFile
или же StorageFolder
и дает вам "токен", который является string
с помощью которого вы можете впоследствии получить доступ к выбранному StorageItem
снова.
StorageFile file = await savePicker.PickSaveFileAsync();
if (file != null)
{
string faToken = StorageApplicationPermissions.FutureAccessList.Add(file);
}
Теперь, когда файл находится в FutureAccessList
позже вы можете получить его:
StorageFile file = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(faToken);
Элементы хранятся в FutureAccessList
выжить даже тогда, когда приложение закрыто и открыто, так что это, вероятно, идеальное решение для вашего случая использования. Тем не менее, имейте в виду FutureAccessList
может хранить не более 1000 элементов (см. Документы), и вы должны поддерживать их - поэтому, если вам больше не нужен элемент, обязательно удалите его, чтобы он больше не учитывался в пределе.
Второе решение было бы объявить broadFileSystemAccess
способность Однако это ограниченная возможность, и у вашего приложения должна быть веская причина для ее использования.