Freigeben über


Arbeiten mit 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 im Projektmappen-Explorer zuzuordnen, fügen Sie das [ProvideFileIcon()] Attribut Ihrer 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 es im Hauptmenü 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 sich im Microsoft.VisualStudio.Text Namespace befindet.

string fileName = buffer.GetFileName();

SolutionItem aus einer Datei

Ermitteln Sie das SolutionItem aus einem absoluten Dateipfad.

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