UWP FolderPicker не дает мне права доступа к папке - PullRequest
0 голосов
/ 05 октября 2018

Следующий код взят из документации Microsoft по этому вопросу с небольшими изменениями:

var folderPicker = new Windows.Storage.Pickers.FolderPicker();
folderPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
folderPicker.FileTypeFilter.Add("*");

Windows.Storage.StorageFolder folder = await folderPicker.PickSingleFolderAsync();
if (folder != null)
{
    // Application now has read/write access to all contents in the picked folder
    // (including other sub-folder contents)
    Windows.Storage.AccessCache.StorageApplicationPermissions.
    FutureAccessList.AddOrReplace("PickedFolderToken", folder);

    if (Directory.Exists(folder.Path)) // fails, I don't have permission to read this folder even though the documentation suggests that I should have access
    {
        this.textBlock.Text = "Picked folder: " + folder.Name; // never gets printed
    }
}

Я также попытался добавить возможность broadFileSystemAccess в манифест приложения.Что мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Приложения UWP имеют ограниченный доступ, и обычные команды ввода-вывода не работают, включая System.Diagnostic.Process.Единственный способ запустить процесс - использовать FullTrustProcessLauncher Class, как описано здесь: https://docs.microsoft.com/en-us/uwp/api/Windows.ApplicationModel.FullTrustProcessLauncher.

Рабочие примеры можно найти здесь: https://github.com/StefanWickDev/UWP-FullTrust

Однако это не решает проблемуработы с существующими библиотеками, поскольку они не являются процессами .Теперь у нас есть служба RPC, где запросы выполняются из службы и получаются результаты.

0 голосов
/ 05 октября 2018

broadFileSystemAccess работает только с Windows.Storage пространством имен, и это уже упоминалось в документах следующим образом:

Это ограниченная возможность.При первом использовании система предложит пользователю разрешить доступ.Доступ настраивается в Настройки> Конфиденциальность

Файловая система.Если вы отправляете приложение в Магазин, которое объявляет эту возможность, вам нужно будет предоставить дополнительные описания того, почему вашему приложению нужна эта возможность и как оно намеревается ее использовать.Эта возможность работает для API в пространстве имен Windows.Storage

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...