2016-02-29 9 views
5

Ich versuche zu arbeiten, wie Sie alle Dateien in einem Ordner in Azure File Storage löschen.Wie lösche ich alle Dateien in einem Azure File Storage-Ordner?

CloudFileDirectory.ListFilesAndDirectories() gibt eine IEnumerable von IListFileItem zurück. Aber das hilft nicht viel, weil es keine Dateinameneigenschaft oder ähnliches hat.

Dies ist, was ich bisher:

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

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

     // How do I delete 'file' 

    } 
} 

Wie kann ich ein IListFileItem zu einem CloudFile ändern, so kann ich myfile.Delete() nennen?

Antwort

10

ListFilesAndDirectories können sowohl Dateien und Verzeichnisse zurückgeben, so dass Sie eine Basisklasse für diese beiden erhalten. Dann kannst du prüfen, ob die Typen es sind und werben. Beachten Sie, dass Sie alle Unterverzeichnisse nachverfolgen möchten, sodass Sie die darin enthaltenen Dateien rekursiv löschen können.

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

Perfekt, danke! Ich habe mich gefragt, ob dies der Fall war, aber die MSDN-Dokumentation zu IListFileItem ist wirklich schlecht. – BG100