2010-09-24 60 views
2

我正在創建一個Visual Studio添加項,將文件添加到打開的當前項目中。如何檢測當前打開的內容?因爲我需要檢索文件夾/文件位置。在Visual Studio中檢測打開的項目

+0

您將如何辨別添加到時有多個項目的解決方案是開放的什麼項目? – 2010-09-24 21:46:29

+0

這是一個很好的問題,也許我應該着眼於在解決方案資源管理器中右鍵單擊某個項目時創建上下文菜單項,並從那裏生成文件。 – 2010-09-24 21:50:16

回答

2

您可以使用下面的代碼搶在溶液中的所有項目:

private DTE2 dte2; 

public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) 
{ 
    dte2 = (DTE2)application; 
    var events = (Events2)dte2.Events; 
    solutionEvents = events.SolutionEvents; 

    solutionEvents.Opened += OnSolutionOpened; 
} 

private void OnSolutionOpened() 
{ 
    Projects projects = dte2.Solution.Projects; 

    foreach (Project project in projects) 
    { 
     ProcessProject(project); 
    } 
} 

private void ProcessProject(Project project) 
{ 
    string directoryName = Path.GetDirectoryName(project.FileName); 
    string fileName = Path.GetFileName(project.FileName); 

    if (directoryName == null || fileName == null) 
    { 
     return; 
    } 

    var directory = new DirectoryInfo(directoryName); 
    var fileInfo = new FileInfo(fileName); 

    //do work 
} 
相關問題