从Visual Studio编辑器获取文件路径

时间:2010-12-30 20:06:14

标签: c# visual-studio vs-extensibility vspackage

我正在开发一个用C#编写的Visual Studio包。

如何以编程方式获取活动编辑器的完整路径?

4 个答案:

答案 0 :(得分:3)

使用宏时,您可以使用

DTE.ActiveDocument.Path + DTE.ActiveDocument.Name

获得完整路径。在制作VS包时,可能在C#中也是如此?

答案 1 :(得分:3)

这是在Visual Studio中获取焦点(活动)文档的完整路径的方法:

module MyExtension
  def extension_method
  end
end

Thor::Shell::Basic.send :include, MyExtension

答案 2 :(得分:2)

在开发ASP.NET Web窗体自定义服务器控件时遇到了类似的问题。 为了获得对DTE对象的引用并创建一个指向正在编辑的文件目录的虚拟路径,我在自定义服务器控制文件中使用了以下代码:

    [Bindable(true)]
    [Category("Behavior")]
    [DefaultValue("")]
    [Editor(typeof(System.Web.UI.Design.UrlEditor), typeof(System.Drawing.Design.UITypeEditor))]
    public string Url
    {
        get
        { 
            object urlObject = ViewState["Url"];
            if (urlObject == null)
            {
                if (DesignMode)
                { 
                    // Get a reference to the Visual Studio IDE
                    EnvDTE.DTE dte = this.Site.GetService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;

                    // Interface for accessing the web application in VS
                    IWebApplication webApplication = (IWebApplication)this.Site.GetService(typeof(IWebApplication));

                    // Path of document being edited (Web form in web application)
                    string activeDocumentPath = dte.ActiveDocument.Path;

                    // Physical path to the web application root
                    string projectPath = webApplication.RootProjectItem.PhysicalPath;

                    // Create virtal path
                    string relativePath = activeDocumentPath.Replace(projectPath, "~\\");

                    return relativePath.Replace('\\','/');
                }
                else
                {
                    return String.Empty;
                }
            }
            else
            {
                return (string)urlObject;
            }
        }
        set
        {
            ViewState["Url"] = value;
        }
    }

使用UrlEditor时,快速导航到正在编辑的文件附近的文件非常有用

答案 3 :(得分:0)

在VS 2010和2008中,右键单击顶部的选项卡,然后从上下文菜单中选择“复制完整路径”。请参阅下面的图片。 alt text