2016-02-29 15 views
5

Próbuję pracować, jak usunąć wszystkie pliki w folderze w magazynie plików Azure.Jak usunąć wszystkie pliki z folderu magazynu plików Azure?

CloudFileDirectory.ListFilesAndDirectories() zwraca wartość IEnumerable z IListFileItem. Ale to niewiele pomoże, ponieważ nie ma nazwy pliku lub podobne.

To, co mam tak daleko:

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

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

     // How do I delete 'file' 

    } 
} 

Jak mogę zmienić IListFileItem do CloudFile więc mogę zadzwonić myfile.Delete()?

Odpowiedz

10

ListFilesAndDirectories może zwracać zarówno pliki, jak i katalogi, więc otrzymasz klasę podstawową dla tych dwóch. Następnie możesz sprawdzić, które typy są i czy są rzucane. Zauważ, że będziesz chciał śledzić wszystkie podkatalogi, dzięki czemu możesz rekursywnie usuwać te pliki.

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

Doskonale, dzięki! Zastanawiałem się, czy to może być jak to zrobić, ale dokumenty MSDN wokół IListFileItem są naprawdę słabe. – BG100

Powiązane problemy