无需打开扩展名即可在Visual Studio中获取文件的内容

问题描述 投票:0回答:2

我正在尝试读取Visual Studio扩展名中文件的内容。以下代码有效,但如果没有打开,则强制我打开文件(否则崩溃):

textDocument = (TextDocument)projectItem.Document.Object("TextDocument");    
EditPoint editPoint = textDocument.StartPoint.CreateEditPoint();
string text =  editPoint.GetText(textDocument.EndPoint);

我可以获得项目的路径,所以我想我可以对项目的位置进行有根据的猜测。但是,理想情况下,我要么不打开就获取文件内容。或者,或者,获取项目项的路径(然后,我可以仅使用System.IO来访问文件内容)。

我看过了,但似乎找不到任何提及。有人可以指出我正确的方向吗?

c# visual-studio visual-studio-extensions
2个回答
0
投票

您可以通过读取ProjectItem的属性来获取路径。

var path = YourProjectItem.Properties.Item("FullPath").Value.ToString()

System.IO.File怎么样?正如您在问题中所说,您可以获取所需文件的路径。因此,您可以执行以下操作:

string content = File.ReadAllText(path);

如果文件太大,并且由于大小而导致当前代码出现问题,您应该看一下“ StreamReader”。 MSDN


0
投票

我不确定扩展名是否可行,但是您可以使用System.IO,如下所示:

using System.IO;

string filePath = @"C:\Whatever\YourFileName.txt";
string fileText = File.ReadAllText(filePath);

您也可以这样使用StreamReader

using System.IO;

string filePath = @"C:\Whatever\YourFileName.txt";
using (StreamReader sr = new StreamReader(filePath))
    fileText = sr.ReadToEnd();
© www.soinside.com 2019 - 2024. All rights reserved.