2

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# です...)。できれば、私はこの方法でもっと安心できるでしょう:)

4

1 に答える 1