在 C# VSIX 中,如何获取当前文件名及其当前正在编辑的相对路径?
In C# VSIX, How to get current file name along with its relative path which is currently being editing?
我正在开发一个 VSIX 项目,我想在其中获取正在 VS IDE(或实验性 [=26] 中编辑的当前文件名和路径(相对于项目) =])?我该怎么做?
我尝试了以下代码:
var currentDocInfo = this._textDocumentFactoryService.TryGetTextDocument(this.view.TextBuffer, out this.TextDocument);
if (currentDocInfo)
{
string test = this.TextDocument.FilePath;
MessageBox.Show(test);
}
else
{
//MessageBox.Show("Nothingg!");
}
此代码是return当前打开文件的绝对路径。我需要获取相对于当前 project/solution 的路径。如果我能得到解决方案的名称,我会找到项目的相对路径。
如果我添加代码:System.IO.Path.GetDirectoryName(dte.Solution.FullName);
它将 return 我的 TextAdornment class 的路径详细信息(一个 class,通过安装我的整个插件来管理编辑器任务,我在这里写 dte.ActiveDocument.FullName; 代码) .但是我想要在我的实验 window.
中打开的文件的文件详细信息
当前文件名和路径:dte.ActiveDocument.FullName;
解决方案目录:System.IO.Path.GetDirectoryName(dte.Solution.FullName);
如果你想在你的实验中获取当前打开的文本编辑器的文件名 window
DTE dte = Package.GetGlobalService(typeof(SDTE)) as DTE;
string docName = dte.ActiveDocument.Name;
编辑
菜单按钮示例,returns实验性visual studio实例中打开文档的当前文件名,如果单击菜单按钮
private void Execute(object sender, EventArgs e)
{
/// Get Open Documents
string docName = GetActiveTextEditor();
if (docName == null) return;
}
internal static string GetActiveTextEditor()
{
DTE dte = Package.GetGlobalService(typeof(SDTE)) as DTE;
string docName = dte.ActiveDocument.Name;
return docName;
}
我正在开发一个 VSIX 项目,我想在其中获取正在 VS IDE(或实验性 [=26] 中编辑的当前文件名和路径(相对于项目) =])?我该怎么做?
我尝试了以下代码:
var currentDocInfo = this._textDocumentFactoryService.TryGetTextDocument(this.view.TextBuffer, out this.TextDocument);
if (currentDocInfo)
{
string test = this.TextDocument.FilePath;
MessageBox.Show(test);
}
else
{
//MessageBox.Show("Nothingg!");
}
此代码是return当前打开文件的绝对路径。我需要获取相对于当前 project/solution 的路径。如果我能得到解决方案的名称,我会找到项目的相对路径。
如果我添加代码:System.IO.Path.GetDirectoryName(dte.Solution.FullName);
它将 return 我的 TextAdornment class 的路径详细信息(一个 class,通过安装我的整个插件来管理编辑器任务,我在这里写 dte.ActiveDocument.FullName; 代码) .但是我想要在我的实验 window.
当前文件名和路径:dte.ActiveDocument.FullName;
解决方案目录:System.IO.Path.GetDirectoryName(dte.Solution.FullName);
如果你想在你的实验中获取当前打开的文本编辑器的文件名 window
DTE dte = Package.GetGlobalService(typeof(SDTE)) as DTE;
string docName = dte.ActiveDocument.Name;
编辑
菜单按钮示例,returns实验性visual studio实例中打开文档的当前文件名,如果单击菜单按钮
private void Execute(object sender, EventArgs e)
{
/// Get Open Documents
string docName = GetActiveTextEditor();
if (docName == null) return;
}
internal static string GetActiveTextEditor()
{
DTE dte = Package.GetGlobalService(typeof(SDTE)) as DTE;
string docName = dte.ActiveDocument.Name;
return docName;
}