Этот метод можно использовать только для доступа к файлам на тех безопасных путях, к которым имеют доступ приложения 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
.Однако это ограниченная возможность, и у вашего приложения должна быть веская причина для ее использования.