Delen via


Werken met bestanden en documenten in Visual Studio-extensies

Hier volgt een verzameling kleine codevoorbeelden op verschillende manieren om met bestanden en documenten te werken.

Actieve tekstweergave ophalen

Haal de huidige actieve tekstweergave op om de tekstbuffertekst te bewerken.

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

Associaties van bestandspictogrammen

Als u een pictogram wilt koppelen aan een bestandsextensie in Solution Explorer, voegt u het [ProvideFileIcon()] kenmerk toe aan uw pakketklasse.

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

Bekijk de duizenden beschikbare pictogrammen in de KnownMonikers verzameling met behulp van het hulpprogrammavenster KnownMonikers Explorer. Zoek deze onder Andere > vensters weergeven in het hoofdmenu.

Bestand openen

Gebruik de Microsoft.VisualStudio.Shell.VsShellUtilities helperklasse.

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

Bestand openen via project

Gebruik deze methode wanneer het bestand dat u opent deel uitmaakt van de oplossing.

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

Bestand openen op het tabblad Voorbeeld

Het tabblad Voorbeeld, ook wel het tabblad Voorlopig genoemd, is een tijdelijk tabblad dat aan de rechterkant van het document wordt geopend. Open elk bestand op het tabblad Voorbeeld als volgt:

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

Bestandsnaam ophalen uit ITextBuffer

Gebruik de extensiemethode buffer.GetFileName() in de Microsoft.VisualStudio.Text naamruimte.

string fileName = buffer.GetFileName();

SolutionItem uit bestand

Zoek het SolutionItem uit een absoluut bestandspad.

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