I have a container named "pictures", and have some folders named "Folder1", "Folder2" inside of it. So files of my blob will be addressed like this "http://optimus.blob.core.windows.net/pictures/Folder1/IMG123.png". Using the below C# code to delete the files inside folders,
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();
}
after deleting all those files in "Folder1" it will be empty. I m trying to delete the empty folder, but can't get a way to do it. Is it possible to delete the folder(s)? Any help will be much appreciated. Thanks in advance.
Under any blob container, there is no real folder or directory exists. They are virtual directories to manage the folder structure for the blobs under container and if all the blobs with any virtual directory or folder are deleted then no such folder exists. It is all logical representation of folder structure and you can ignore the folders under any container.
But when it comes to container, you need to manually delete the container as well after deleting its blobs, if you want to clean up the whole container.
For Azure Blob Storage, there isn't really a 'folder' object. 'Folders' are actually just blob name prefixes - the '/' character being used to separate 'folders' is a convention in blob naming, not a requirement. So, you don't have to worry about it - as long as there are no blobs with the "Folder1" prefix, then you're fine.
来源:https://stackoverflow.com/questions/30523409/delete-folders-inside-azure-blob-storage-container