UWP StorageFolder.getFileSasync()返回系统.__ comObject



在UWP应用程序中,我尝试使用storegefolder.getfilesasync()nethod。

    public async void GetMediaFiles()
    {
        _localMediaFolder = await GetOrCreateFolder(ApplicationData.Current.LocalFolder, "Media", ReservationId.ToString());
        IReadOnlyList<StorageFile> files = await _localMediaFolder.GetFilesAsync();
    }

iv'e也尝试使用已知文件夹以及相同的结果。

    public async void GetMediaFiles()
    {
        StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
        _tempMediaFolder = await picturesFolder.CreateFolderAsync("media", CreationCollisionOption.OpenIfExists);
        IReadOnlyList<StorageFile> storageFilesOperation = await _tempMediaFolder.GetFilesAsync();
    }

而不是'ireadyllylist'im获取" system .__ comObject"。我不能将其施放给" Ireadonlylist",也不知道如何使用它来获取我需要的文件。

iv'e也尝试使用已知文件夹以及相同结果。没有例外的int输出表明该应用程序无法访问文件或文件夹。iv'e还检查了用于图片库的访问的应用清单。

我该如何修复?

这是设计。由于IReadOnlyList是一个接口,因此无需将System.__ComObject施放为IReadOnlyList,这意味着当您创建此类型的变量时,您可以将其分配给它的任何一个实现IReadOnlyList接口的类的实例,而System.__ComObject就是这样的类。您可以像往常一样继续使用storageFilesOperation,例如删除所有文件:

StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
var _tempMediaFolder = await picturesFolder.CreateFolderAsync("media", CreationCollisionOption.OpenIfExists);
IReadOnlyList<StorageFile> storageFilesOperation = await _tempMediaFolder.GetFilesAsync();
foreach(StorageFile f in storageFilesOperation)
{
    await f.DeleteAsync();
}

相关内容

  • 没有找到相关文章

最新更新