UWP StorageFolder.GetFilesAsync()返回System .__ ComObject

时间:2017-12-08 23:35:03

标签: c# uwp windows-10-universal storagefolder

在UWP应用程序中,我尝试使用StorageFolder.GetFilesAsync()nethod从app存储文件夹访问图像。

    public async void GetMediaFiles()
    {

        _localMediaFolder = await GetOrCreateFolder(ApplicationData.Current.LocalFolder, "Media", ReservationId.ToString());
        IReadOnlyList<StorageFile> files = await _localMediaFolder.GetFilesAsync();

    }

我试图使用已知文件夹,结果相同。

    public async void GetMediaFiles()
    {

        StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
        _tempMediaFolder = await picturesFolder.CreateFolderAsync("media", CreationCollisionOption.OpenIfExists);
        IReadOnlyList<StorageFile> storageFilesOperation = await _tempMediaFolder.GetFilesAsync();

    }

而不是'IReadOnlyList'我得到'System .__ ComObject'。 我无法将其强制转换为'IReadOnlyList',并且不知道如何使用它来获取我需要的文件。

Iv'e尝试使用已知文件夹,但结果相同。 输出中没有异常,表示应用程序无权访问文件或文件夹。 我还检查了应用程序清单,以便访问图片库。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这是设计的。没有必要将System.__ComObject强制转换为IReadOnlyList,因为IReadOnlyList是一个接口,这意味着当您创建此类型的变量时,您可以为其分配实现{的任何类的实例。 {1}}接口,IReadOnlyList就是这样的类。您可以照常继续使用System.__ComObject,例如删除所有文件:

storageFilesOperation