Нет определения для GetFilesAsync

Всякий раз, когда я пытаюсь этот код:

  foreach (StorageFile filesAsync in await folderFromPathAsync.GetFolderAsync(_selectedPlayList).GetFilesAsync())//Error here
        {
            this._fileNames.Add(filesAsync.Name.Substring(0, filesAsync.Name.LastIndexOf('.')));
            this.FilesListBox.Items.Add(filesAsync.Name.Substring(0, filesAsync.Name.LastIndexOf('.')));
            this._pathNames.Add(filesAsync.Path);
        }

Определение GetFilesAsync() не существует по какой-то странной причине. Это моя вина? Мое полное сообщение об ошибке:

'Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder>' не содержит определения для "GetFilesAsync" и не найден метод расширения "GetFilesAsync", принимающий первый аргумент типа "Windows.Foundation.IAsyncOperation" (вы пропустили директиву using или ссылку на сборку?)

пожалуйста, помогите мне

1 ответ

Вы пытаетесь позвонить GetFilesAsync() по результатам звонка GetFolderAsync() - тогда как вы должны ждать результата GetFolderAsync() а потом звонит GetFilesAsync() на результат жду. Возвращаемое значение из GetFolderAsync() это не папка - это асинхронная операция, которая извлекает папку. (Это IAsyncOperation<StorageFolder>не StorageFolder.)

Например:

var folder = await folderFromPathAsync.GetFolderAsync(_selectedPlayList);
foreach (var file in await folder.GetFilesAsync())
{
    ...
}
Другие вопросы по тегам