Freigeben über


Verwenden von Dateien und Dokumenten in Visual Studio-Erweiterungen

Im Folgenden finden Sie eine Sammlung kleiner Codebeispiele auf verschiedene Arten zum Arbeiten mit Dateien und Dokumenten.

Aktive Textansicht abrufen

Rufen Sie die aktuelle aktive Textansicht ab, um den Textpuffertext zu bearbeiten.

DocumentView docView = await VS.Documents.GetActiveDocumentViewAsync();
if (docView?.TextView == null) return; //not a text window
SnapshotPoint position = docView.TextView.Caret.Position.BufferPosition;
docView.TextBuffer?.Insert(position, "some text"); // Inserts text at the caret

Dateisymbolzuordnungen

Um ein Symbol einer Dateierweiterung in Projektmappen-Explorer zuzuordnen, fügen Sie das [ProvideFileIcon()] Attribut der Paketklasse hinzu.

[ProvideFileIcon(".abc", "KnownMonikers.Reference")]
public sealed class MyPackage : ToolkitPackage
{
    ...
}

Sehen Sie sich die Tausende verfügbarer Symbole in der KnownMonikers Auflistung mithilfe des Toolfensters "KnownMonikers Explorer" an. Suchen Sie sie im Menü Standard unter "Andere Fenster anzeigen>".

Datei öffnen

Verwenden Sie die Microsoft.VisualStudio.Shell.VsShellUtilities Hilfsklasse.

string fileName = "c:\\file.txt";
await VS.Document.OpenAsync(fileName);

Datei über Projekt öffnen

Verwenden Sie diese Methode, wenn die datei, die Sie öffnen, Teil der Lösung ist.

string fileName = "c:\\file.txt";
await VS.Documents.OpenViaProjectAsync(fileName);

Datei auf der Registerkarte "Vorschau" öffnen

Die Registerkarte "Vorschau" (auch als vorläufige Registerkarte bezeichnet) ist eine temporäre Registerkarte, die auf der rechten Seite des Dokuments geöffnet wird. Öffnen Sie eine beliebige Datei auf der Registerkarte "Vorschau" wie folgt:

string fileName = "c:\\file.txt";
await VS.Documents.OpenInPreviewTabAsync(fileName);

Dateiname von ITextBuffer abrufen

Verwenden Sie die Erweiterungsmethode buffer.GetFileName() , die Microsoft.VisualStudio.Text sich im Namespace befindet.

string fileName = buffer.GetFileName();

SolutionItem aus Datei

Suchen Sie den SolutionItem von einem absoluten Dateipfad.

string fileName = "c:\\file.txt";
PhysicalFile item = await PhysicalFile.FromFileAsync(fileName);