问题描述
之前做过一个程序,当时给wordApp.Documents.Open方法的地址是一个绝对地址,指向E盘的一个地方服务器经多人调戏后程序出错了,调试后发现wordApp.Documents.Open方法执行后抛出异常,文件无法获取,地址变成了C:\WINDOWS\system32\E\...毫无头绪,求大神们赐教
解决方案
解决方案二:
把地址改回正确的不就行了。。。
解决方案三:
引用1楼jun471537173的回复:
把地址改回正确的不就行了。。。
地址没有改过啊,给wordApp.Documents.Open的地址还是原来那个啊,是wordApp.Documents.Open内部执行的时候发生了改变,方法不执行不报错,一执行马上抛出异常
解决方案四:
环境变量管理员执行就是那个路径
解决方案五:
引用3楼FoxDave的回复:
环境变量管理员执行就是那个路径
没大明白,为啥这个方法会和环境变量有关系?有什么办法恢复成原来直接读取绝对地址的样子嘛?
解决方案六:
C:\WINDOWS\system32\E\你这E后面少了个冒号吧?所以就认为是相对地址了
解决方案七:
多人调戏服务器?windows下微软的产品本来就是对于进程的“打开”功能习惯性地,都是要记忆“上一次打开文件的路径”的。微软在2006年以后经历了以此劫难,因此产品的传统不再尊重了。但是之前的主要产品还是比较尊重传统的。我们可以推断的是,如果你使用Word.Documents.Open语句打开文档时使用的不是绝对路径,那么就是从当时的用户上一次打开文件的地址开始查找,而不是永远都从你安装应用程序的那个路径开始查找。你在应用中,应该给相对文件路径计算为绝对路径,再去调用word。
解决方案八:
引用楼主rzh505的回复:
之前做过一个程序,当时给wordApp.Documents.Open方法的地址是一个绝对地址,
贴出实际的测试截屏,把这个当“地址”调试一下,截屏中能看一下所调试的代码。
时间: 2024-10-22 19:18:17