Azure blob files are stored in a plain list without any physical folder structure, but we can create virtual folders where each file's folder path is a part of its name.
It brings out another problem, how to retrieve a list of ALL files in virtual sub-folder, using only that folder's name?
Actually, there's a simpler way to do that and it is available in the library itself. If you look at CloudBlobContainer.ListBlobs
method, it accepts two parameters:
useFlatBlobListing: Setting this value to true
will ensure that only blobs are returned (including inside any sub folders inside that directory) and not directories and blobs.
var account = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
var blobClient = account.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("blob-container-name");
var blobs = container.ListBlobs(prefix: "container-directory", useFlatBlobListing: true);
You will get a list of all blobs belonging in the "container-directory" in blobs
variable.