2015-05-29 129 views
4

我有一個容器名爲「圖片」,並且其中有一些文件夾名爲「Folder1」,「Folder2」。所以我的blob文件將會像這樣寫入http://optimus.blob.core.windows.net/pictures/Folder1/IMG123.png。使用下面的C#代碼,刪除所有這些文件中「Folder1中」這將是空後,刪除這些文件夾裏面,刪除Azure Blob存儲容器內的文件夾

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(); 
} 

。我試圖刪除空文件夾,但無法做到這一點。是否可以刪除文件夾?任何幫助都感激不盡。提前致謝。

回答

1

在任何blob容器下,不存在真實的文件夾或目錄。它們是管理容器下斑點的文件夾結構的虛擬目錄,並且如果刪除了具有任何虛擬目錄或文件夾的所有斑點,則不存在這樣的文件夾。這是文件夾結構的所有邏輯表示,您可以忽略任何容器下的文件夾。

但是,當涉及到容器,你需要手動刪除容器,以及刪除它的斑點後,如果你想清理整個容器。

5

對於Azure Blob存儲,沒有真正的'文件夾'對象。 '文件夾'實際上只是blob名稱前綴 - 用於分隔'文件夾'的'/'字符是blob命名中的約定,而非要求。所以,你不必擔心它 - 只要沒有帶有「Folder1」前綴的斑點,那麼你很好。