在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尝试使用已知文件夹,但结果相同。 输出中没有异常,表示应用程序无权访问文件或文件夹。 我还检查了应用程序清单,以便访问图片库。
我该如何解决这个问题?
答案 0 :(得分:0)
这是设计的。没有必要将System.__ComObject
强制转换为IReadOnlyList
,因为IReadOnlyList
是一个接口,这意味着当您创建此类型的变量时,您可以为其分配实现{的任何类的实例。 {1}}接口,IReadOnlyList
就是这样的类。您可以照常继续使用System.__ComObject
,例如删除所有文件:
storageFilesOperation