public static int FindValueInFile(ReaderFactory readerFactory, FileInfo fileInfo, string value) { var source = readerFactory.Read(fileInfo); int position = source.IndexOf(value, StringComparison.OrdinalIgnoreCase); return position; }
public static IEnumerable<KeyValuePair<string, int>> FindValueInFiles(DirectoryInfo dir, string value) { var readerFactory = new ReaderFactory { Readers = new List<BaseReader> { new DocReader(), new TxtReader() } }; foreach (FileInfo fileInfo in EnumerateFindFiles(dir, readerFactory.SupportedExtensions, SearchOption.AllDirectories) .Where(s => !s.FullName.Contains("$"))) { int position = FindValueInFile(readerFactory, fileInfo, value); if (position > 0) { yield return new KeyValuePair<string, int>(fileInfo.FullName, position); } } }
public static int FindPatternInFile(ReaderFactory readerFactory, FileInfo fileInfo, string pattern) { var source = readerFactory.Read(fileInfo); var match = Regex.Match(source, pattern); return match.Index; }