首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Azure.Storage.Blobs删除目录中的所有blobs

使用Azure.Storage.Blobs删除目录中的所有blobs
EN

Stack Overflow用户
提问于 2021-03-13 17:29:41
回答 1查看 1.7K关注 0票数 0

我正在将我的代码重构为Azure.Storage.Blobs,因为windowsAzure.Storage正在被降级。不过,我没有办法删除“直接”一词。在旧图书馆里,你可以这样做:

代码语言:javascript
复制
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(Config.StorageConnStr);
CloudStorageAccount account = CloudStorageAccount.Parse(StorageConnection);
CloudBlobClient blobClient = account.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(ExportContainerName);
CloudBlobDirectory folder = container.GetDirectoryReference(jobid.ToLower());
var blobs = folder.ListBlobs();

foreach (var blob in blobs)
{
    ((CloudBlob)blob).DeleteIfExists();
}

但是我看不到与新包类似的代码。有什么指示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-14 00:48:29

您可以使用GetBlobsByHierarchy方法在您的目录中使用列表浮标,然后删除它们。

请参阅我的代码:

代码语言:javascript
复制
            BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
            BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
            var resultSegment = containerClient.GetBlobsByHierarchy(BlobTraits.None, BlobStates.None, "/", "frankfolder/").AsPages(default, 100);
            
            foreach (Azure.Page<BlobHierarchyItem> blobPage in resultSegment)
            {
                foreach (BlobHierarchyItem blobhierarchyItem in blobPage.Values)
                {
                    Console.WriteLine("Blob name: {0}", blobhierarchyItem.Blob.Name);
                    containerClient.DeleteBlob(blobhierarchyItem.Blob.Name);
                }
            }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66616488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档