Bracket.Hosting.ZipArchiveDirectory.GetDirectoryEntires C# (CSharp) Метод

GetDirectoryEntires() публичный Метод

public GetDirectoryEntires ( string path, string searchPattern ) : string[]
path string
searchPattern string
Результат string[]
        public string[] GetDirectoryEntires(string path, string searchPattern)
        {
            //TODO:Ignoring searchPattern for the moment
            if (searchPattern != "*")
                throw new NotImplementedException("Search patterns other than * are not yet implemented");

            var found = new List<string>();

            if (IsRoot(path))
            {
                foreach (ZipEntry entry in _storage.Entries)
                {
                    string[] parts = entry.FileName.Split(new[] { '\\', '/' }, StringSplitOptions.RemoveEmptyEntries);
                    if ((parts.Length == 1 && entry.IsDirectory) || parts.Length > 1)
                    {
                        string dir = GetFullName(parts[0]);

                        if (!found.Contains(dir))
                            found.Add(dir);
                    }

                }
                return found.ToArray();
            }

            ZipEntry root = GetEntry(path);
            if (root == null)
                return new string[0];

            string target = VirtualFileUtils.NormalizePath(root.FileName);

            foreach (ZipEntry entry in _storage.Entries)
            {
                if (entry.IsDirectory == false)
                    continue;

                string normalizedEntry = VirtualFileUtils.NormalizePath(Path.GetDirectoryName(entry.FileName));
                int lastSlash = normalizedEntry.LastIndexOf('/');
                string entryDirectoryName = lastSlash > 0
                                                ? normalizedEntry.Substring(0, normalizedEntry.LastIndexOf('/'))
                                                : String.Empty;

                if (String.Compare(target, entryDirectoryName, true) == 0)
                    found.Add(GetFullName(normalizedEntry));

            }

            return found.ToArray();
        }

Usage Example

 public void GetDirectoriesShouldReturnDirectoriesInRoot()
 {
     //Given
     var dir = new ZipArchiveDirectory("Fresh.zip");
     //when
     string[] directories = dir.GetDirectoryEntires(".", "*");
     //Then
     Assert.That(directories.Length,Is.EqualTo(1));
     Assert.That(directories[0], Is.EqualTo(FullPath("Fresh")));
 }
All Usage Examples Of Bracket.Hosting.ZipArchiveDirectory::GetDirectoryEntires