Ich erstelle eine Winforms-App und verwende Microsoft.Office.Interop.Word, um ein Dokument zu öffnen und die Anzahl der Seiten abzurufen. Es funktioniert normalerweise gut. Bei bestimmten Dateien erstellt er dabei einen neuen Ordner ("Name des Dokuments" _files) und erstellt in diesem Ordner drei neue Dateien (colorchememapping.xml, filelist.xml und themedata.thmx). Das fragliche Dokument ist ein Word 97-2003 Doc mit der Erweiterung .doc. Bei anderen Dateien desselben Typs wird dies nicht ausgeführt. Nur mit bestimmten. Die Anzahl der Seiten wird trotzdem korrekt zurückgegeben. Dies ist der Code Ich verwende:C# Microsoft.Office.Interop.Word erstellt unerwünschten Ordner mit XML- und Designdateien. Warum?
public int PageCountWord(object Path)
{
// Get application object
Microsoft.Office.Interop.Word.Application WordApplication = new Microsoft.Office.Interop.Word.Application();
// Get document object
object Miss = System.Reflection.Missing.Value;
object ReadOnly = false;
object Visible = false;
Microsoft.Office.Interop.Word.Document Doc = WordApplication.Documents.Open(ref Path, ref Miss, ref ReadOnly, ref Miss, ref Miss, ref Miss, ref Miss, ref Miss, ref Miss, ref Miss, ref Miss, ref Visible, ref Miss, ref Miss, ref Miss, ref Miss);
// Get pages count
Microsoft.Office.Interop.Word.WdStatistic PagesCountStat = Microsoft.Office.Interop.Word.WdStatistic.wdStatisticPages;
int PagesCount = Doc.ComputeStatistics(PagesCountStat, ref Miss);
Doc.Close();
WordApplication.Quit();
return PagesCount;
}
Und es erstellt die Ordner und Dateien, die während der Doc.Close() Linie.
Wer weiß, warum das passieren würde, und wenn ich es verhindern kann? (anders als die Erforschung des Ordners, wenn ich fertig bin und alles neu erstellte löschen)
Außerdem enthalten die Dokumente leider vertrauliche Informationen, so dass ich einen nicht hochladen kann. Hoffentlich hat jemand das gleiche Problem hat, und entdeckte eine Lösung
Ich mag, dass der Application.Quit() -Methode hinzufügen würde akzeptiert drei optionale Paramater (zwei Aufzählungen und ein boolean) und dass keine Kombination von diesen verhindert dieses Verhalten. https://msdn.microsoft.com/en-us/vba/word-vba/articles/application-quit-methodword –
Haben Sie versucht, 'SaveChanges: false' an die Methode zum Schließen von Dokumenten zu übergeben? – stuartd
Ja, ich habe das versucht. Das ist einer der optionalen Parameter. –