/// <summary> /// Public for unit testing /// </summary> /// <param name="directory"></param> /// <param name="listToAppend"></param> /// <returns></returns> public static List <LineDetails> GetAllFilesInFolder(string directory, List <LineDetails> listToAppend = default(List <LineDetails>)) { if (listToAppend == default(List <LineDetails>)) { listToAppend = new List <LineDetails>(); } if (directory == "error") { return(listToAppend); } foreach (var d in Directory.GetDirectories(directory)) { //skip this iteration if the directory is blacklisted if (Blacklist.Folders.Any(d.Contains)) { continue; } foreach (var f in Directory.GetFiles(d)) { var file = new FileInfo(f); //skip this iteration if the extension is blacklisted (most likely due to it not being a text file) if (Blacklist.Extensions.Any(file.Extension.Contains) || Blacklist.Files.Any(file.Name.Contains)) { continue; } var lines = File.ReadAllLines(file.FullName); var lineNumber = 0; foreach (var line in lines) { lineNumber++; var lineDetails = new LineDetails(file, lineNumber, line); listToAppend.Add(lineDetails); } } GetAllFilesInFolder(d, listToAppend); } return(listToAppend); }
private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if (dataGrid.SelectedItems.Count <= 0) { return; } DataRowView row = (DataRowView)dataGrid.SelectedItems[0]; LineDetails line = new LineDetails(new FileInfo(row[0].ToString()), (int)row[1], (string)row[2]); var dte = FileSearch.GetCurrentDTE(); try { //File is opened within VisualStudio dte.Windows.Item(line.FileInfo.Name).Activate(); } catch { try { //File is not open dte.ExecuteCommand("File.OpenFile", line.FileInfo.Name); dte.Windows.Item(line.FileInfo.Name).Activate(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } System.Threading.Thread.Sleep(500); dte.ExecuteCommand("Edit.GoTo", line.LineNo.ToString()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }