我想创建一个IsEmpty(StorageFolder directory)
适用于 WinRT 应用程序的简单方法,即使用异步 API。我在 StorageFolder 类的文档中没有看到相关方法,而且我在搜索中也没有找到任何东西。如果我错过了,我很抱歉!
我设法创建了以下方法,该方法有效:
public static async Task<bool> IsEmpty(StorageFolder directory)
{
var files = await directory.GetFilesAsync();
if (files.Count > 0)
{
return false;
}
var folders = await directory.GetFoldersAsync();
if (folders.Count > 0)
{
return false;
}
return true;
}
但是......有更清洁的方法吗?本机或我可以编码...检查目录是否为空应该是一件简单的事情,但是我知道在尝试使用WinRT的异步API检查目录或文件是否存在之前,我遇到了问题.
我也不完全确定对 GetFilesAsync 和 GetFoldersAsync 的异步调用是否在返回之前获取目录中的每个文件/文件夹,或者它们是否可以在意识到 Count 将高于 0 之前以某种方式仅获取一个项目(我在想惰性求值,就像在 Haskell 语言中一样,但这是 C#...)。如果可以的话,我会对这种方法更放心:)