2012-09-19 32 views
1

我有這個C#代碼,我想刪除文檔庫中的某個子目錄。但是這會產生一個錯誤,因爲該目錄不是空的。我希望有人能指導我如何做到這一點。如何清空c#xaml metro風格中的目錄?

感謝您的及時回覆。

StorageFolder storageFolder = KnownFolders.DocumentsLibrary;    
var queryResult = storageFolder.CreateFolderQuery(); 
IReadOnlyList<StorageFolder> folderList = await queryResult.GetFoldersAsync(); 

foreach (StorageFolder folder in folderList) 
    { 
     await folder.DeleteAsync();    
    } 
+0

您必須刪除您嘗試刪除的文件夾中的所有文件。您只能刪除一個空目錄。 –

回答

2

您可以使用StorageFolder.GetFilesAsync()獲取所有存在於文件夾中的文件列表和之前刪除的文件夾,因爲沒有在DeleteAsync()方法無法指定子文件夾和文件刪除它們。

更多信息:StorageFolder class | MSDN

2

希望這可能有所幫助。

public async void deletefile() 
     { 
      StorageFolder sourceFolder = ApplicationData.Current.TemporaryFolder; 
      // sourceFolder = await sourceFolder.GetFolderAsync("Test"); 
      // await sourceFolder.DeleteAsync(StorageDeleteOption.PermanentDelete); 


      // var files = await sourceFolder.GetFilesAsync(); 

      IReadOnlyList<StorageFile> folderList = await sourceFolder.GetFilesAsync(); 
      if (folderList.Count > 0) 
      { 
       foreach (StorageFile f1 in folderList) 
       { 

        await f1.DeleteAsync(StorageDeleteOption.PermanentDelete); 
       } 
      } 

      //StorageFile retfile = await ApplicationData.Current.TemporaryFolder.GetFileAsync("MysoundFile.mp3"); 
      // if (retfile != null) 
      // { 
      //  await retfile.DeleteAsync(StorageDeleteOption.PermanentDelete); 
      // } 


     }