Вот код, который я использую для поиска файла, заканчивающегося данной string
.
Структура похожа на Обозреватель решений в Visual Studio:
Solution -> ProjectItems -> (Nested ProjectItems) -> FileNames
Где бы ни выполнялся ваш код, вы можете открыть Projects в решении, а затем ProjectItems в этих проектах.
var typeFileName = @"\MyClassName.cs";
// Search each Project in the Solution, exclude Unit Test Projects
foreach (Project item in _applicationObject.Solution.Projects.OfType<Project>().Where(p => !p.Name.EndsWith(".Tests")))
{
// Search each ProjectItem recursively
foreach (ProjectItem projectItem in item.ProjectItems)
{
RecursiveProjectItemSearch(projectItem, typeFileName);
}
}
asdasd
private void RecursiveProjectItemSearch(ProjectItem projectItem, string typeFileName)
{
for (short i = 0; i < projectItem.FileCount; i++)
{
var fileName = projectItem.FileNames[i];
if (fileName.EndsWith(typeFileName))
{
// In my case, I want to open the file that I'm searching for
_applicationObject.ItemOperations.OpenFile(fileName);
}
foreach(ProjectItem childProjectItem in projectItem.ProjectItems)
{
RecursiveProjectItemSearch(childProjectItem, typeFileName);
}
}
}
Я не знаю, еслиэто самый оптимальный способ сделать это, но он должен работать.Учитывая приведенный выше код, вы можете изменить его на File.Open()
и прочитать содержимое или что-то подобное.