【发布时间】:2020-01-13 14:38:31
【问题描述】:
我正在处理一个 VSIX 项目,我想在其中获取正在 VS IDE(或实验窗口)中编辑的当前文件名和路径(相对于项目)?我该怎么做?
我尝试了以下代码:
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!");
}
此代码返回当前打开文件的绝对路径。我需要获取相对于当前项目/解决方案的路径。如果我能得到解决方案的名称,我会找到项目的相对路径。
如果我添加代码:System.IO.Path.GetDirectoryName(dte.Solution.FullName);
它将返回我的 TextAdornment 类的路径详细信息(一个类,通过安装我的整个插件来管理编辑器任务,这里我正在编写 dte.ActiveDocument.FullName; 代码)。但我想要在我的实验窗口中打开的文件的文件详细信息。
【问题讨论】:
-
您在 3 小时前提出并回答并删除了同一个问题:stackoverflow.com/questions/59716129/… 这是怎么回事?
-
该问题最终被删除,我需要对该问题进行一些更改。我需要获取从解决方案到当前打开文件的相对路径。我标记的答案没有让我获得相对路径。我也在寻找解决方案/项目名称,如果我得到了,我将能够执行字符串操作来获取相对路径。
-
您使用的是什么版本的 .net?
-
@Train .NET Framework 4.7.2
标签: c# visual-studio visual-studio-extensions vsix extensibility