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的好文章。