4

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

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

4

4 回答 4

3

工作宏时,您可以使用

DTE.ActiveDocument.Path + DTE.ActiveDocument.Name

获得完整路径。在制作 VS 包时,这在 C# 中可能是一样的吗?

于 2010-12-30T20:46:55.247 回答
3

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

DTE dte = (DTE)GetService(typeof(DTE));
string document = dte.ActiveDocument.FullName;
于 2015-06-12T16:54:19.647 回答
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 时,快速导航到正在编辑的文件附近的文件很有用

于 2011-01-26T17:34:51.440 回答
0

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

于 2010-12-30T20:23:46.577 回答