使用c#获取文件列表(Windows-Store应用程序).函数的问题
本文关键字:应用程序 函数 问题 Windows-Store 获取 文件 列表 使用 | 更新日期: 2023-09-27 18:09:54
我试图写一个函数,将返回一个文件列表。下面是源代码:
public async IReadOnlyList<StorageFile> GetFiles()
{
StorageFolder folder = await KnownFolders.PicturesLibrary.GetFolderAsync("folder N1");
if (folder != null)
{
IReadOnlyList<StorageFile> fList = await folder.GetFilesAsync();
return fList;
}
}
但是为什么不工作呢?错误提示"Can't convert IReadOnlyList to StorageFile"。怎么了?我的fList变量与函数头中的类型相同。
异步方法返回Task<T>
,因此像这样更改函数
public async Task<IReadOnlyList<StorageFile>> GetFiles()
{
StorageFolder folder = await KnownFolders.PicturesLibrary.GetFolderAsync("folder N1");
if (folder != null)
return await folder.GetFilesAsync();
else
return null;
}
GetFilesAsync停止工作
正如@Xyroid所说,你需要使用Task>作为返回类型,因为async方法的返回类型必须是void, Task或Task。代码@Xyroid发布。你可以得到这样的文件:
IReadOnlyList<StorageFile> fileList = await GetFiles();
int count = fileList.Count;
你的列表'fList'使用StorageFile作为它的类型-它应该使用类型IReadOnlyList。试试以下命令:
List<IReadOnlyList> fList = await folder.GetFilesAsync();
改变方法的返回类型:
public async List<IReadOnlyList> GetFiles()
{
...
}