2015-05-29 92 views
4

我有一个容器名为“图片”,并且其中有一些文件夹名为“Folder1”,“Folder2”。所以我的blob文件将会像这样写入http://optimus.blob.core.windows.net/pictures/Folder1/IMG123.png。使用下面的C#代码,删除所有这些文件中“Folder1中”这将是空后,删除这些文件夹里面,删除Azure Blob存储容器内的文件夹

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(*AzureConnectionString*); 

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 

CloudBlobContainer container = blobClient.GetContainerReference("pictures"); 

var blobs = container.ListBlobs("Folder1", true); 
foreach (var blob in blobs) 
{ 
    container.GetBlockBlobReference(((CloudBlockBlob)blob).Name).DeleteIfExists(); 
} 

。我试图删除空文件夹,但无法做到这一点。是否可以删除文件夹?任何帮助都感激不尽。提前致谢。

回答

1

在任何blob容器下,不存在真实的文件夹或目录。它们是管理容器下斑点的文件夹结构的虚拟目录,并且如果删除了具有任何虚拟目录或文件夹的所有斑点,则不存在这样的文件夹。这是文件夹结构的所有逻辑表示,您可以忽略任何容器下的文件夹。

但是,当涉及到容器,你需要手动删除容器,以及删除它的斑点后,如果你想清理整个容器。

5

对于Azure Blob存储,没有真正的'文件夹'对象。 '文件夹'实际上只是blob名称前缀 - 用于分隔'文件夹'的'/'字符是blob命名中的约定,而非要求。所以,你不必担心它 - 只要没有带有“Folder1”前缀的斑点,那么你很好。