2012-07-30 7 views
1

Si un fichier DOC est ouvert par MS Word, y a-t-il un moyen pour un programme externe d'obtenir le chemin complet du fichier DOC? J'ai essayé d'utiliser GetCommandLineA() mais cela ne me donne aucun résultat, juste "" C: \ Program Files \ Microsoft Office \ Office12 \ WINWORD.EXE "/ n/dde". J'ai également lu un article au http://www.withinwindows.com/2008/08/31/taming-microsoft-word-2007s-file-associations-and-document-windows-part-one/, mais je ne sais pas comment obtenir ces messages DDE. Voulez-vous s'il vous plaît dites-moi comment?Récupère le chemin complet d'un document Word ouvert

+0

Pouvez-vous utiliser .Net/Office Interop? Ou est-ce COM ou quelque chose d'autre? – JohnZaj

Répondre

0

Vous devez obtenir un crochet dans le modèle d'objet Word (par exemple via .Net/Office Interop ou directement via COM). Une fois que vous avez une référence au document, utilisez sa propriété FullName. Si le document peut être sur le réseau sur un serveur ou à partir d'une base de données, il est possible qu'il contienne des caractères dans le nom de fichier (tels que "-") qui ne sont pas valides sur la plate-forme sur laquelle vous le téléchargez. Si tel est le cas, supprimez le nom des caractères de chemin de fichier non valides en fonction de la plate-forme.

Il existe quelques techniques défensives pour obtenir le nom.

+0

Merci pour votre réponse. J'ai réussi à faire ça. :) – anhldbk

+0

Une dernière remarque: J'ai rencontré des cas où les propriétés Name et FullName retourneraient une chaîne vide ou null. En fin de compte, je pense qu'il est tombé à un problème de Microsoft par lequel l'application d'une transformation XSLT à un document se traduirait par ces valeurs dépouillées (logique, en fait). Donc, s'il y a des activités de transformation en cours: obtenez le nom du document le plus tôt possible dans votre code, avant tout traitement. – JohnZaj

Questions connexes