Exemple #1
0
        /// <summary>
        /// Enumerates the given directory and filters based on specified searchPattern
        /// </summary>
        /// <param name="blobContainerClient">Directory to enumerate on</param>
        /// <param name="searchPattern">Search pattern to apply</param>
        /// <param name="prefix">Prefix to apply</param>
        /// <returns>Enumerable of strings which contains all found blobs</returns>
        public static IEnumerable <string> EnumerateDirectory(this BlobContainerClient blobContainerClient, string searchPattern, string prefix)
        {
            #region validation

            if (blobContainerClient == null)
            {
                throw new ArgumentNullException(nameof(blobContainerClient));
            }

            if (string.IsNullOrEmpty(searchPattern))
            {
                throw new ArgumentNullException(nameof(searchPattern));
            }

            #endregion

            var result = new List <string>();

            Regex blobNameRegex = RegexFactory.CreateRegexFromSearchPattern(searchPattern);

            foreach (var listBlobItem in blobContainerClient.GetBlobs(prefix: prefix))
            {
                string itemName = listBlobItem.Name;

                if (!string.IsNullOrEmpty(itemName) && blobNameRegex.IsMatch(itemName[(itemName.LastIndexOf(DIRECTORY_SEPARATOR_CHAR + prefix + DIRECTORY_SEPARATOR_CHAR) + prefix.Length + 2)..]))