删除Azure Blob存储容器中的文件夹

Man*_*asu 7 c# directory blobstorage azure-storage azure-storage-blobs

我有一个名为"pictures"的容器,里面有一些名为"Folder1","Folder2"的文件夹.因此,我的blob文件将像" http://optimus.blob.core.windows.net/pictures/Folder1/IMG123.png "一样进行处理.使用下面的C#代码删除文件夹中的文件,

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();
}
Run Code Online (Sandbox Code Playgroud)

删除"Folder1"中的所有文件后,它将为空.我试图删除空文件夹,但无法找到方法.是否可以删除文件夹?任何帮助都感激不尽.提前致谢.

小智 6

对于Azure Blob存储,实际上没有"文件夹"对象."文件夹"实际上只是blob名称前缀 - 用于分隔"文件夹"的'/'字符是blob命名的约定,而不是要求.所以,你不必担心它 - 只要没有带有"Folder1"前缀的blob,那你就没事了.


小智 4

在任何 blob 容器下,都不存在真正的文件夹或目录。它们是虚拟目录,用于管理容器下 Blob 的文件夹结构,如果删除具有任何虚拟目录或文件夹的所有 Blob,则不存在此类文件夹。它是文件夹结构的逻辑表示,您可以忽略任何容器下的文件夹。

但是对于容器来说,如果要清理整个容器,则在删除其 blob 后还需要手动删除该容器。