private Collection <File> GetFiles(FileSearchOptions searchOptions, BlobSasBuilder readPermissions)
        {
            List <File> files = new List <File>();

            List <string> extensionsList       = searchOptions.ExtensionsFilter == null ? new List <string>() : new List <string>(searchOptions.ExtensionsFilter);
            bool          extensionsIsNotEmpty = extensionsList.Count > 0;

            var blobItems = GetBlockBlobs(Container, BlobPath, searchOptions.AllFiles);

            foreach (var blobItem in blobItems)
            {
                bool add = true;
                if (extensionsIsNotEmpty)
                {
                    string extension = Path.GetExtension(blobItem.Name).ToLowerInvariant();
                    bool   match     = extensionsList.Contains(extension);

                    add = (((!searchOptions.NegateExtensionsFilter) && match) || (searchOptions.NegateExtensionsFilter && (!match)));
                }

                if (add)
                {
                    var blob = Container.GetBlobClient(blobItem.Name);

                    File file = GetFileInfo(blob, readPermissions, blobItem.Properties);

                    files.Add(file);
                }
            }

            files.Sort(CompareFilesByLastModifiedAndName);

            return(new Collection <File>(files));
        }
        public string[] GetFileNames(FileSearchOptions searchOptions)
        {
            List <string> names = new List <string>();

            Collection <File> files = GetFiles(searchOptions);

            foreach (File file in files)
            {
                names.Add(file.Name);
            }

            return(names.ToArray());
        }
 public Collection <File> GetFiles(FileSearchOptions searchOptions, int readAccessExpiryTime)
 {
     return(GetFiles(searchOptions, CreateReadPermissions(readAccessExpiryTime)));
 }
 public Collection <File> GetFiles(FileSearchOptions searchOptions)
 {
     return(GetFiles(searchOptions, ReadPermissions));
 }