我正在开发一个用C#编写的Visual Studio包。
如何以编程方式获取活动编辑器的完整路径?
答案 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中,右键单击顶部的选项卡,然后从上下文菜单中选择“复制完整路径”。请参阅下面的图片。