Laden...

Warum werden Word-Dateien nicht immer gefunden?

Erstellt von MoaByter vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.238 Views
M
MoaByter Themenstarter:in
68 Beiträge seit 2016
vor 5 Jahren
Warum werden Word-Dateien nicht immer gefunden?

Hallo,
ich möchte aus C# heraus eine Worddatei öffnen. Zuerst klappte das nicht:

Process.Start(@"C:\Programme (x86)\...\Winword.exe", @"R:\...\word\Re_lypô_29102018-010_H.docx")

Da bekam ich zwei Fehlermeldungen von Word: siehe "nicht_gefunden1,2.png"
Warum sucht Word zuerst nach der nicht vorhandenen doc-Datei (docx wurde übergeben) und dann nochmals am falschen Ort (der volle, korrekte Pfad wurde übergeben) nach der docx-Datei?

Funktionell habe ich das Problem gelöst: Ich habe im "Process.Start(...)" das zugeordnete Programm weggelassen, dann macht mein Programme alles richtig.
Interessant: wenn ich bei der ersten Version - mit WinWord.exe - eine Datei ohne "ô" übergebe, funktiert's. Das "ô" kann doch nicht den gesamten Pfad verändern?

Meine Frage nun: Wo liegt da der Unterschied? In beiden Fällen wird doch "WinWord.exe" angesprochen. Warum macht Word beim ersten Mal so einen Mist?

5.657 Beiträge seit 2006
vor 5 Jahren

Hi MoaByter,

Word interpretiert Parameter mit Leerzeichen als mehrere Parameter und versucht alle übergebenen Dateien gleichzeitig zu öffnen.

Versuch mal, ein zusätzliches Paar Anführungszeichen um den Dateipfad zu setzen, damit nachher der Aufruf so erfolgt:

Winword.exe "R:\...\word\Re_lypô_29102018-010_H.docx"

Weeks of programming can save you hours of planning

M
MoaByter Themenstarter:in
68 Beiträge seit 2016
vor 5 Jahren

Danke für die Antwort, MrSparkle.

Klingt intereassant. Ich werd's nachher ausprobieren, bin jetzt gerade bei 'nem anderen Projekt.

Wie schon geschrieben, hatte ich das Problem zwar gelöst, aber keine Erklärung, warum es mit explizieter Programmzuordnung nicht funktioniert, ohne diese aber schon.
Mittlerweile habe ich eine dringende Vermutung:
Wenn ich das Programm - hier also WinWord.exe - direkt ansprechen, werden die Paramater auch direkt übergeben, dann greift Deine Erklärung.
Lasse ich die Programmzuordnung aber weg, sucht das System das zugehörige Programm und übergibt die Parameter wie beim Anklicken, nämlich als - sozusagen - "%1": "WinWord.exe %1". Und dabei ist das "%1" schon ein zusammenhängender String.

Was hälst Du davon?