UWP проблема с открытым файлом - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь открыть файл или выбрать каталог, где сохранить свой файл в каталоге документов, но получаю ошибку.

Произошла следующая ошибка:

System.Runtime.InteropServices.COMException
  HResult=0x80004005
  Message=Unspecified error

  Source=<Cannot evaluate the exception source>
  StackTrace:
<Cannot evaluate the exception stack trace>

Код:

Public Sub New()
        InitializeComponent()

        ' Deferred execution until used. Check https://msdn.microsoft.com/library/dd642331(v=vs.110).aspx for further info on Lazy<T> class.
        _activationService = New Lazy(Of ActivationService)(AddressOf CreateActivationService)
        Dim localFolder As StorageFile

        Dim openPicker As Pickers.FileOpenPicker = New Pickers.FileOpenPicker()
        localFolder = openPicker.PickMultipleFilesAsync()

Я получаю ошибку при использовании OpenPicker

Я пробовал как с:

<Capabilities>
    <uap:Capability Name="documentsLibrary" />
  </Capabilities>`

, так и с этим:

<Package
  ...
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap mp uap5 rescap">
...
<Capabilities>
    <rescap:Capability Name="broadFileSystemAccess" />
</Capabilities>`

Ответы [ 2 ]

0 голосов
/ 28 сентября 2019

Если вы хотите использовать возможность documentsLibrary или broadFileSystemAccess, проверьте разрешения после установки приложения: Настройки -> Конфиденциальность -> Documents или File system.

Для первого запуска выдолжен подсказать пользователю об этом.

0 голосов
/ 26 сентября 2019

Во-первых, для этого кода openPicker.PickMultipleFilesAsync () он будет возвращать тип IReadOnlyList вместо StorageFile.Это означает множественный выбор вместо одного выбора.

Во-вторых, если вы хотите использовать FileOpenPicker, вам нужно установить типы файлов, которые вы хотите выбрать, и установить в полеStuentStartLocation начальное местоположение, соответствующее типу выбранного файла.Для получения дополнительной информации вы можете сослаться на этот документ , но это о C #.

Следующий код берет в качестве примера файл .txt и PictureLibrary.

Dim localFolder As StorageFile
Dim openPicker As Pickers.FileOpenPicker = New Pickers.FileOpenPicker()
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary
openPicker.FileTypeFilter.Add(".txt")
localFolder = Await openPicker.PickSingleFileAsync()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...