public override ReadOnlyCollection<AbstractPath> GetChildPaths(DirectoryPath directory, Regex regex) { String rawPath = PathToStringPath(directory); String[] entries = Directory.GetFiles(rawPath); List<AbstractPath> output = new List<AbstractPath>(entries.Length); foreach (String e in entries) { String filename = Path.GetFileName(e); if (regex.IsMatch(filename)) { if (File.Exists(e)) { output.Add(directory.AppendFile(filename)); } else if (Directory.Exists(e)) { output.Add(directory.AppendDirectory(filename)); } else { throw new IOException("Invalid state: file system entry neither File nor Directory?s"); } } } return new ReadOnlyCollection<AbstractPath>(output); }
public override ReadOnlyCollection<FilePath> GetChildFiles(DirectoryPath directory, Regex regex) { String rawPath = PathToStringPath(directory); String[] entries = Directory.GetFiles(rawPath); List<FilePath> output = new List<FilePath>(entries.Length); foreach (String e in entries) { String filename = Path.GetFileName(e); if (regex.IsMatch(filename)) { output.Add(directory.AppendFile(filename)); } } return new ReadOnlyCollection<FilePath>(output); }