Archivo de aplicación universal de Windows 10 / Acceso al directorio

Estoy desarrollando una aplicación que lee archivos jpeg y pdf desde una ubicación configurable en el sistema de archivos. Actualmente hay una versión en ejecución implementada en WPF y ahora estoy tratando de pasar a las nuevas aplicaciones de Windows Universal.

El siguiente código funciona bien con WPF:

public IList<string> GetFilesByNumber(string path, string number)
    {
        if (string.IsNullOrWhiteSpace(path))
            throw new ArgumentNullException(nameof(path));

        if (string.IsNullOrWhiteSpace(number))
            throw new ArgumentNullException(nameof(number));

        if (!Directory.Exists(path))
            throw new DirectoryNotFoundException(path);

        var files = Directory.GetFiles(path, "*" + number + "*",
           SearchOption.AllDirectories);

        if (files == null || files.Length == 0)
            return null;
        return files;
    }

Con el uso de Universal Apps me encontré con algunos problemas:

Directory.Exists no está disponible¿Cómo puedo leer desde directorios fuera del almacenamiento de mi aplicación?

Para leer desde otro directorio fuera del almacenamiento de la aplicación, probé lo siguiente:

StorageFolder folder = StorageFolder.GetFolderFromPathAsync("D:\\texts\\");
var fileTypeFilter = new string[] { ".pdf", ".jpg" };
QueryOptions queryOptions = new QueryOptions(CommonFileQuery.OrderBySearchRank, fileTypeFilter);
queryOptions.UserSearchFilter = "142";
StorageFileQueryResult queryResult = folder.CreateFileQueryWithOptions(queryOptions);
IReadOnlyList<StorageFile> files = queryResult.GetFilesAsync().GetResults();

La cosa es: no está funcionando, pero tengo una excepción:

Se produjo una excepción del tipo 'System.UnauthorizedAccessException' en TextManager.Universal.DataAccess.dll pero no se manejó en el código de usuario Información adicional: Acceso denegado. (Excepción de HRESULT: 0x80070005 (E_ACCESSDENIED))

Sé que tiene que configurar algunos permisos en el manifiesto, pero no puedo encontrar uno adecuado para las operaciones de E / S del sistema de archivos ...

¿Alguien también tuvo tales problemas / una posible solución?

Solución: De las soluciones que me dio @Rico Suter, elegí FutureAccessList en combinación con FolderPicker. También es posible acceder a la entrada con el token después de reiniciar el programa.

También puedo recomendarte elLineamientos UX y estoMuestra de Github.

¡Muchas gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta