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

9

我有一个名为"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();
}

在删除了"Folder1"中的所有文件后,它将为空。我正在尝试删除空文件夹,但无法找到方法。是否可能删除这个文件夹?任何帮助将不胜感激。先感谢您的帮助。

3个回答

6

对于Azure Blob Storage,实际上并没有“文件夹”对象。 “文件夹”实际上只是Blob名称前缀 - 使用“/”字符来分隔“文件夹”是Blob命名中的惯例,而不是要求。 因此,您不必担心它 - 只要没有带有“Folder1”前缀的Blob,那么就没问题了。


4

在任何Blob容器下,实际上不存在真正的文件夹或目录。它们是虚拟目录,用于管理容器下的Blob的文件夹结构。如果删除了所有带有虚拟目录或文件夹的Blob,则不存在这样的文件夹。这是文件夹结构的逻辑表示,您可以忽略任何容器下的文件夹。

但是,当涉及到容器时,在删除其Blob后,您需要手动删除容器,如果要清除整个容器。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接