異なる親の場所にあるフォルダーを表すStorageFolderオブジェクトでDeleteAsyncを呼び出すときの、DeleteAsyncの動作について少し混乱しています。削除するフォルダーの親の場所が、たとえばローカルアプリケーションデータフォルダーである場合、コンテンツ(ファイルとサブフォルダー)が含まれている場合でもフォルダーを削除できます。親の場所がたとえばドキュメントライブラリである場合、フォルダが空でない場合、「ディレクトリは空ではありません。(HRESULTからの例外:0x80070091)」という例外が発生します。
もちろん、ドキュメントライブラリにアクセスする機能を宣言し、アプリマニフェストでファイルの種類を宣言しました。これらのファイル(私のテストケースではテキストファイル)へのアクセスが機能することを証明するために、私のテストアプリはフォルダーを作成し、その中にテキストファイルを作成します。アプリは、フォルダから単一のテキストファイルを削除することもできます。ただし、親フォルダがドキュメントライブラリの場合、フォルダ全体を削除することはできません。
誰かがこの異なる行動を説明できますか?これは、アプリケーションデータフォルダー内のデータが他のデータ(ほとんどの場合ユーザーデータ)よりもリラックスして処理されるという仮定(確かにはわかりません)に関係している可能性があります。この仮定のヒントは、アプリケーションデータフォルダー内のファイルを削除すると、常にそれらのファイルが完全に削除されますが、他のフォルダー内のファイルを削除すると、ごみ箱に移動できるということです。
編集:これ が私のテストアプリです:www.juergen-bayer.net/Downloads/FolderDeletionTest.zip