none
Win RT中刪除LocalFolder中的文件夹 RRS feed

  • 问题

  • 我想刪除独立存储空间中自己建立的一个文件夹

    这个文件夹的目录层次关系大概是:

    LocalFolder

       ----TestFolderLevel1

         -----TestFolder

                 ------Test1.txt

                 ------Test2.txt

    现在我想刪除TestFolder,

    我是这样子做的

     StorageFolder TestFolderLevel1  = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFolderAsync("TestFolderLevel1");

    StorageFolde TestFolder = await TestFolderLevel1 .GetFolderAsync("TestFolder");

     var allFiles = await TestFolder .GetFilesAsync();

     foreach (StorageFile sf in allFiles)
      {
         await sf.DeleteAsync();
      }

     await TestFolder .DeleteAsync();

    结果在await sf.DeleteAsync();这个地方就报错了    拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))

    这是什么原因?

    2012年11月18日 13:39

答案

  • 你需要保证你的TestFolder和TestFolder下的文件和子文件夹没有被占用。

    另外如果你要删除TestFolder 下的所有文件,只需要await TestFolder .DeleteAsync()。但是同样,需要保证你的TestFolder和TestFolder下的文件和子文件夹没有被占用。


    Thanks! Damon.Tian

    2012年11月19日 3:02

全部回复

  • 其实我的本来需求是想rename TestFolder这个文件夹,尽管API里面有Rename这个方法,但是在文件夹底下有其他东西的时候,貌似直接来会报错
    2012年11月18日 13:41
  • 你需要保证你的TestFolder和TestFolder下的文件和子文件夹没有被占用。

    另外如果你要删除TestFolder 下的所有文件,只需要await TestFolder .DeleteAsync()。但是同样,需要保证你的TestFolder和TestFolder下的文件和子文件夹没有被占用。


    Thanks! Damon.Tian

    2012年11月19日 3:02