private IEnumerable <FileSystemEntry> GetFilesInDirectory( BigDirectory bigDirectory, SearchPattern searchPattern, SearchOption searchOption) { foreach (var file in bigDirectory.Files.Values) { if (!searchPattern.Match(file.FullName)) { continue; } yield return(CreateFileSystemEntry(file)); } if (searchOption == SearchOption.AllDirectories) { foreach (var directory in bigDirectory.Directories.Values) { foreach (var file in GetFilesInDirectory(directory, searchPattern, searchOption)) { yield return(file); } } } }
public BigDirectory GetOrCreateDirectory(string directoryName) { if (!Directories.TryGetValue(directoryName, out var directory)) { directory = new BigDirectory(); Directories.Add(directoryName, directory); } return(directory); }
public BigFileSystem(string rootDirectory) { _rootDirectory = new BigDirectory(); SkudefReader.Read(rootDirectory, AddBigArchive); }