當在表示不同父級位置中的文件夾的StorageFolder對象上調用DeleteAsync時,我對此有些困惑。如果要刪除的文件夾的父位置是本地應用程序數據文件夾,則即使它們具有內容(文件和子文件夾),我也可以刪除它們。如果父位置是例如文檔庫,那麼我得到一個異常「目錄不爲空(來自HRESULT的異常:0x80070091)」,如果該文件夾不是空的。Windows運行時:StorageFolder.DeleteAsync在從不同位置刪除時的不同行爲
我當然聲明能夠訪問文檔庫並在應用程序清單中聲明文件類型。爲了證明訪問這些文件(我的測試用例中的文本文件)能夠運行,我的測試應用程序將創建該文件夾並在其中創建文本文件。該應用程序甚至允許從文件夾中刪除單個文本文件。但是,如果父文件夾是文檔庫,則不允許刪除整個文件夾。
有人可以解釋這種不同的行爲?這可能與假設(我不確定)有關,應用程序數據文件夾中的數據處理比其他數據(最有可能是用戶數據)更容易處理。這種假設的一個提示是,刪除應用程序數據文件夾中的文件始終將其永久刪除,但在其他文件夾中刪除允許移動到回收站。
編輯: 這裏是我的測試程序:www.juergen-bayer.net/Downloads/FolderDeletionTest.zip
感謝您的詳細解釋。我在同一條路上,但沒有想到它通過。文檔庫的好處。雖然這種行爲沒有記錄,但我認爲原因正是你指出的。 –