2016-02-29 35 views
5

私はAzure File Storageのフォルダ内のすべてのファイルを削除する方法を試しています。Azure File Storageフォルダ内のすべてのファイルを削除するにはどうすればよいですか?

CloudFileDirectory.ListFilesAndDirectories()は、IListFileItemIEnumerableを返します。しかし、これはファイル名のプロパティなどを持たないため、あまり役に立ちません。

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

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

     // How do I delete 'file' 

    } 
} 

どのように変更することができIListFileItemCloudFileに私はmyfile.Delete()を呼び出すことができます。

これは私がこれまで持っているものでしょうか?

答えて

10

ListFilesAndDirectoriesは、ファイルとディレクトリの両方を返すことができるので、それらの2つの基本クラスを取得できます。次に、それがどの型であるかを調べることができます。任意のサブディレクトリを追跡して、それらのファイルを再帰的に削除することができます。

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

関連する問題