c# .net uwp windows-10-universal

c# - Folder Picker lanza una excepción en el móvil



folderbrowserdialog c# (2)

En mi evento Page.Loaded tengo este código:

FolderPicker fp = new FolderPicker(); fp.SuggestedStartLocation = PickerLocationId.ComputerFolder; fp.FileTypeFilter.Add("*"); var f = await fp.PickSingleFolderAsync(); // <-- Exception ...

Detalles de Exceeption:

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

Esto funciona bien en el escritorio.

Traté de establecer propiedades adicionales en el FolderPicker` pero no cambió nada. También intenté agregar capacidades en el manifiesto.

También he visto a alguien sugiriendo que podría ser porque el selector se llama más de una vez, pero no parece ser el caso aquí, ya que el evento .Loaded se llama solo una vez.

¿Me estoy perdiendo de algo?


En general, el ciclo de vida de las aplicaciones de escritorio y aplicaciones móviles difiere un poco. No estoy seguro de por qué en el móvil se lanza la excepción en ese caso específico, sin embargo, dice MSDN , que teóricamente se puede producir una excepción mientras se ajusta la aplicación. Este no es el caso, pero tal vez se lanza una excepción porque la aplicación puede no estar completamente lista. Como lo he intentado con diferentes eventos, debería poder abrir el selector en el evento GotFocus :

private async void MainPage_GotFocus(object sender, RoutedEventArgs e) { this.GotFocus -= MainPage_GotFocus; FolderPicker fp = new FolderPicker(); fp.FileTypeFilter.Add(".jpg"); var f = await fp.PickSingleFolderAsync(); }


No debe usar fp.FileTypeFilter.Add("*");

El ms dice que deberías darle un tipo especial.

Debería escribir picker.FileTypeFilter.Add(".jpg");

Independientemente de si la carpeta existe en este tipo de archivo no afectó.

Solo digo: llwr (辣 鸡 微软)

Necesita agregar el tipo de archivo especial pero no tiene nada.