public async Task <IEnumerable <IFileSystemItem> > GetChildren() { var azurePath = this.ContainerPath.Replace(PathUtils.Separator, '/'); var results = this.ContainerClient.GetBlobsByHierarchyAsync( prefix: azurePath + "/", delimiter: "/" ); var children = new List <IFileSystemItem>(); await foreach (var result in results) { if (result.Prefix == null) { var fullPath = PathUtils.Combine(this.Container, result.Blob.Name); var item = new AzureBlobFile(this.Client, fullPath); if (item.Path != this.ExistanceMarker.Path) { children.Add(item); } } else { var fullPath = PathUtils.Combine(this.Container, result.Prefix); var item = new AzureBlobDirectory(this.Client, fullPath); children.Add(item); } } return(children); }
public AzureBlobDirectory(BlobServiceClient client, string path) : base(client, path) { this.ExistanceMarker = new AzureBlobFile(client, PathUtils.Combine(this.Path, ".marker")); }