我被要求开发一个通过C#解决方案的插件,并从源文件中提取所有文档并将其导出到HTML文件。我们不能使用普通的文档生成器,因为导出需要采用特定的格式。
我知道如何创建一个基本的插件,但不知道如何枚举源文件。
关于如何开始这个项目的任何想法/资源?
感谢。
答案 0 :(得分:0)
以下是我用来搜索以给定string
结尾的文件的一些代码。
结构类似于Visual Studio中的解决方案资源管理器:
Solution -> ProjectItems -> (Nested ProjectItems) -> FileNames
无论您的代码在何处执行,您都可以在解决方案中提取项目,然后在这些项目中提取ProjectItem。
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()
并阅读内容或类似内容。