[英]Getting the contents of a file in Visual Studio without opening the file from an extension
我正在尝试读取 Visual Studio 扩展中文件的内容。 以下代码有效,但强制我打开文件,如果不是(否则会崩溃):
textDocument = (TextDocument)projectItem.Document.Object("TextDocument");
EditPoint editPoint = textDocument.StartPoint.CreateEditPoint();
string text = editPoint.GetText(textDocument.EndPoint);
我可以获得项目的路径,所以我想我可以对项目项目的位置进行有根据的猜测。 但是,理想情况下,我想在不打开文件的情况下获取文件内容; 或者,获取项目项的路径(然后我可以只使用 System.IO 来访问文件内容)。
我已经看过了,但似乎无法找到其中任何一个的提及。 任何人都可以指出我正确的方向吗?
您可以通过读取ProjectItem
的属性来获取它的路径。
var path = YourProjectItem.Properties.Item("FullPath").Value.ToString()
获得path
您可以使用System.IO
读取其内容。
string content = File.ReadAllText(path);
如果文件有点大,并且由于大小而导致当前代码出现问题,则应查看StreamReader
类。
我不确定这是否可以用于扩展,但您可能可以使用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();
编辑:
我想我现在更了解你了。
“在不打开文件的情况下获取文件内容”的唯一方法是如果扩展程序主动为您提供该数据,但我可以放心地假设它没有。
在读取文件时,您应该已经知道文件在哪里(如果您不知道,那么您不打算访问该文件,或者您只是查看的时间不够长)。
我会尝试手动搜索 SDK 文件(或使用文件爬虫)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.