2014-11-13 87 views
-1

每当我尝试此代码:没有定义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()犯规存在一些奇怪的reason.Is这是一个我的错吗? 我的完整的错误消息:

'Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder>'不包含“GetFilesAsync”的定义,并没有扩展方法“GetFilesAsync”接受型“Windows.Foundation.IAsyncOperation”的第一个参数可以找到(是否缺少?使用指令或程序集refrence)

请帮我

回答

1

你试图调用GetFilesAsync()上调用GetFolderAsync()的结果 - 而你应该等待的GetFolderAsync()结果,然后呼唤关于等待的结果。来自GetFolderAsync()的返回值不是文件夹 - 它是获取文件夹的异步操作。 (这是一个IAsyncOperation<StorageFolder>,而不是一个StorageFolder

例如:

var folder = await folderFromPathAsync.GetFolderAsync(_selectedPlayList); 
foreach (var file in await folder.GetFilesAsync()) 
{ 
    ... 
} 
+0

非常感谢你。我无法测试它,因为我的应用程序仍在开发中,结果没有错误。我不得不改变fileAsync.Name和其他文件,但这不是问题。谢谢! – Christos

+0

@myproducts:好的,我改变了变量名,因为'filesAsync'暗示a)它是一个集合,b)它是一个异步操作,两者都不是这种情况... –