从azure存储中删除Blob失败



我正在尝试从容器中删除Blob。DeleteIfExits返回true,但什么也没发生。我使用Azure的门户检查了容器,仍然可以看到斑点。

我的代码出了什么问题?

private static void DeleteAllFilesWithSameName(String filePath, String filename, CloudBlobContainer container)
{
String filenameWidthoutExtension = Path.GetFileNameWithoutExtension(filename);
try
{
IEnumerable<IListBlobItem> blobs = container.ListBlobs(filenameWidthoutExtension, true);

if (blobs.Count<IListBlobItem>() > 0)
{
List<string> blobNames = blobs.OfType<CloudBlockBlob>().Select(b => b.Name).ToList();
foreach (String blobName in blobNames)
{
CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);
bool isDeleted = blockBlob.DeleteIfExists();
}
}
}
catch (Exception e)
{
Console.Write(e.Data);
}

}

我认为问题出在代码中的逻辑上:

CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);

上面的线不应该是吗?

CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName);

请尝试将您的代码更改为:

foreach (String blobName in blobNames)
{
CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName);
bool isDeleted = blockBlob.DeleteIfExists();
}

最新更新