2016-02-29 78 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

相关问题