2016-02-29 75 views
5

我正在嘗試如何刪除Azure文件存儲中文件夾中的所有文件。如何刪除Azure文件存儲文件夾中的所有文件?

CloudFileDirectory.ListFilesAndDirectories()返回的IEnumerable。但這並沒有什麼幫助,因爲它沒有文件名屬性或類似的。

這是我到目前爲止有:

var folder = root.GetDirectoryReference("myfolder"); 

if (folder.Exists()) { 
    foreach (var file in folder.ListFilesAndDirectories()) { 

     // How do I delete 'file' 

    } 
} 

我怎樣才能改變一個IListFileItemCloudFile這樣我就可以打電話myfile.Delete()

回答

10

ListFilesAndDirectories可以返回文件和目錄,所以你得到這兩個基類。然後,您可以檢查它是哪種類型和投射。請注意,您需要跟蹤任何子目錄,以便遞歸刪除這些文件中的文件。

var folder = root.GetDirectoryReference("myfolder"); 

if (folder.Exists()) 
{ 
    foreach (var item in folder.ListFilesAndDirectories()) 
    {   
     if (item.GetType() == typeof(CloudFile)) 
     { 
      CloudFile file = (CloudFile)item; 

      // Do whatever 
     } 

     else if (item.GetType() == typeof(CloudFileDirectory)) 
     { 
      CloudFileDirectory dir = (CloudFileDirectory)item; 

      // Do whatever 
     } 
    } 
} 
+0

完美,謝謝!我想知道如果這可能是如何做到這一點,但有關IListFileItem的MSDN文檔真的很差。 – BG100

相關問題