Я пытаюсь использовать Microsoft.Office.Interop.Word, чтобы открывать и восстанавливать документы MS Word, но всякий раз, когда он сталкивается с путем с пробелами, он выходит из строя , даже если я вставляю кавычки вокруг строки, используя
"\"" + string + "\""
или что-то в этом роде.Скопируйте и вставьте точный путь, который он выводит после «Обработки», в мой терминал, откроет PDF в моей программе по умолчанию, так что я знаю, что путь хорош и что обычная оболочка CMD может открыть его.Полная ошибка выглядит следующим образом:
Processing "C:/Users/me/Documents/DocTesting/!Fine.pdf"
Saving as "C:/Users/me/Documents/DocTesting/!Fine.docx"
Time elapsed: 00:00:01.1499644
Processing "C:/Users/me/Documents/DocTesting/!Not Okay.pdf"
(C:\//Users/me/Documents/DocTesting...) (0x800A1436): Sorry, we couldn't find your file. Was it moved, renamed, or deleted?
at Microsoft.Office.Interop.Word.Documents.Open(Object& FileName, Object& ConfirmConversions, Object& ReadOnly, Object& AddToRecentFiles, Object& PasswordDocument, Object& PasswordTemplate, Object& Revert, Object& WritePasswordDocument, Object& WritePasswordTemplate, Object& Format, Object& Encoding, Object& Visible, Object& OpenAndRepair, Object& DocumentDirection, Object& NoEncodingDialog, Object& XMLTransform)
at Testing.DocumentConverter.convDoc(String filename, String inPath, String outPath)
Unhandled Exception: System.Runtime.InteropServices.COMException: The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))
at Microsoft.Office.Interop.Word.DocumentClass.get_Application()
at Testing.DocumentConverter.convDoc(String filename, String inPath, String outPath)
at Testing.Program.Main(String[] args)
, а код, вызвавший ошибку, выглядит следующим образом:
string docstring = "\"" + inPath + filename + "\"";
Console.WriteLine("Processing {0}", docstring);
doc = wordApp.Documents.Open(docstring, (object)false, ref readOnly,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
(object)isVisible,ref missing, ref missing, ref missing, ref missing);
ВЫКЛЮЧЕНИЕ В WINDOWS ВЫ ЛУЧШЕ С ВАМИ ИСПОЛЬЗУЕТСЯВЗАИМОДЕЙСТВУЙ С СЛОМ, ТО ЭТО ДОЛЖНО БЫТЬ \\