Конвертировать StorageFile в строку - PullRequest
0 голосов
/ 12 сентября 2018

Нам нужно сохранить файл изображения в виде строки в приложении UWP. Это был план:

FileOpenPicker picker = new FileOpenPicker();
picker.FileTypeFilter.Add(".png");
StorageFile file = await picker.PickSingleFileAsync();
byte[] fileBytes = File.ReadAllBytes(file.Path);
string fileString = Convert.ToBase64String(fileBytes);

но линия

byte[] fileBytes = File.ReadAllBytes(file.Path);

бросков

System.UnauthorizedAccessException Доступ к пути «C: \ MyFolder \ ImageFile.png» запрещен.

Для этого упражнения у каждого есть разрешение на полный доступ к файлу. Я также переместил файл в разные места, включая USB-накопитель, но всегда получал одно и то же исключение. Я предполагаю, что это вещь UWP, а не права доступа?

Как сохранить файл изображения в виде строки в приложении UWP?

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Вы получаете исключение, поскольку в UWP вы можете получить доступ только к файлам по пути, находящемуся в области «Пакет приложений».

Для решения вашей проблемы вы можете использовать IBuffer расширение ToArray:

 IBuffer buffer = await FileIO.ReadBufferAsync(file);
 string fileString = Convert.ToBase64String(buffer.ToArray());
0 голосов
/ 12 сентября 2018

вы не можете напрямую получить доступ к файлу со строковым путем. В UWP вы всегда должны обращаться к файлу с помощью хранилища (File, Folder) , отметьте это
чтобы получить байты, вы можете использовать класс FileIO или Open Stream с StorageFile.

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