如何列出blob容器中的所有目錄和子目錄?如何使用.NET的Azure存儲客戶端庫列出所有虛擬目錄和子目錄(BLOBS)
這是我到目前爲止有:
public List<CloudBlobDirectory> Folders { get; set; }
public List<CloudBlobDirectory> GetAllFoldersAndSubFoldersFromBlobStorageContainer()
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
if (container.Exists())
{
Folders = new List<CloudBlobDirectory>();
foreach (var item in container.ListBlobs())
{
if (item is CloudBlobDirectory)
{
var folder = (CloudBlobDirectory)item;
Folders.Add(folder);
GetSubFolders(folder);
}
}
}
return Folders;
}
private void GetSubFolders(CloudBlobDirectory folder)
{
foreach (var item in folder.ListBlobs())
{
if (item is CloudBlobDirectory)
{
var subfolder = (CloudBlobDirectory)item;
Folders.Add(subfolder);
GetSubFolders(subfolder);
}
}
}
上面的代碼片段給我我想要的清單,但我不確定遞歸方法和其它.NET/C#語法和最佳實踐編程模式。簡而言之,我希望最終的結果儘可能優雅和高效。
上述代碼片段如何改進?
具體是什麼NuGet包名稱和版本您使用的存儲客戶端?我要求這個重現性 – juvchan
好,我會盡量提供一個基於此解決方案 – juvchan