Konvertieren von Word-Dokument in base64-Zeichenfolge C#
Ich versuche, die base64-Darstellung eines aktiven Word-Dokument, während es noch in Word öffnen
und erhalte die folgende Fehlermeldung in ReadAllBytes():
Der Prozess kann nicht auf die Datei 'Dateipfad' es wird von einem anderen Prozess verwendet
public string GetEncodedTemplate()
{
//Convert a Word document's base64 representation
string base64 = String.Empty;
_application.ActiveDocument.Save();
string docPath = _application.ActiveDocument.FullName;
byte[] binarydata = File.ReadAllBytes(docPath);
base64 = System.Convert.ToBase64String(binarydata, 0, binarydata.Length);
return base64;
}
Verstehe ich, dass der Fehler tritt auf, weil das angegebene Dokument noch in Word geöffnet,
meine Frage ist - Ist es noch irgendwie möglich die base64-Darstellung des Dokuments ohne Rückgriff auf speichern in einer temp-Datei?
Ich bin mit C# .NET 4.0
Und MS Office 2010
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie richtig - Wort hat eine Sperre auf das aktuelle Dokument. Um das aktuelle Dokument bytes, die Sie benötigen würden, um kopieren Sie die vorhandene Datei (
- Datei.Copy
) oder speichern in eine neue Datei (Dokument.SaveAs
oderIPersistFile.Save
) für das Lesen der Inhalte.