1

我需要在文件資源管理器視圖中顯示所有azure blob的虛擬目錄。當從這個文件資源管理器創建文件夾時,我已經上傳了該文件夾中的虛擬文件。 例如:如果我需要創建xyz文件夾,我將上傳一個帶有「https://abc.blob.core.windows.net/container/xyz/dummyfile.txt」這個名字的文件。列出文件夾&文件詳細信息時,排除了dummmyfile.txt。Azure blob存儲 - 虛擬目錄是否有子?

上面的場景工作正常。我在這裏面臨一個小問題。在快照下方,每個文件夾都會顯示+圖標,其中包含子文件夾/文件。我需要一個名爲HasChild的屬性來執行此功能。有什麼方法可以獲得這些信息嗎?

enter image description here

注: 對於臨時的解決辦法,我這樣做是與下面的代碼:

var containerDetail = blobClient.GetContainerReference(containerName); 
var hasChild = containerDetail.ListBlobs(virtualDirectoryPath).Count > 1; 
+0

你試過這種方法嗎? https://social.msdn.microsoft.com/Forums/azure/en-US/4da1ed17-c2fa-45c4-b8a7-38fc904c2b6b/check-if-azure-folder-exists?forum=windowsazuredevelopment –

+0

我也試過這種方法。在這裏,我使用count> 1,因爲我在創建文件夾時上傳了一個虛擬文件。我們不能在Azure blob中創建一個空目錄。 – LTA

回答

0

Azure的Blob存儲只是二進制文件存儲。沒有實現文件夾或文件指針的底層操作系統,因此您只能使用二進制文件名對其進行建模。假裝有一個文件夾結構的慣例是使用斜槓,但是如果你真的想要的話,你可以輕鬆地使用下劃線,散列標記或雙標誌。雖然你必須上傳一個內置文件夾結構的空文件,但是你必須上傳一個空文件 - 正如你所看到的count> 1.

CodeProject上有一篇關於modelling directory structures using Azure Blob Storage的好文章。