Word Automation 中的 SaveAs 给我一个“这不是一个有效的文件名”错误

Posted

技术标签:

【中文标题】Word Automation 中的 SaveAs 给我一个“这不是一个有效的文件名”错误【英文标题】:SaveAs in Word Automation gives me a "This is not a valid file name" error 【发布时间】:2011-05-20 17:06:43 【问题描述】:

我正在尝试使用 Word Automation 将文档保存到网络驱动器。我可以完全访问它。我什至可以通过驱动器上的代码创建目录.....

我使用 Directory.CreateDirectory 在驱动器上创建了一个目录,没有问题.....问题是尝试使用 Word 自动化将 Word 文档保存到该创建的目录。

文件名和路径格式为:\\gy2k3001\Folder1\Folder2\Test.docx

我使用的代码是这样的:

    Object documentPath=filepath;
    wd.ActiveDocument.SaveAs(ref documentPath, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing);

其中文件路径等于@"\\gy2k3001\Folder1\Folder2\Test.docx"

我得到的错误是:“这不是一个有效的文件名。\n 请尝试以下一项或多项操作:\n* 检查路径以确保它输入正确。\n* 选择文件和文件夹列表中的一个文件。”

我在这里做错了什么?您无法在自动化中使用网络驱动器进行保存吗?

我可以将它很好地保存在本地硬盘上.....就像我之前所说的那样,我拥有该网络目录所需的所有权限

【问题讨论】:

路径前面实际上有两个斜杠..不是一个....问题没有正确发布 @Daniel - 感谢您的编辑 【参考方案1】:

嗯....问题似乎是服务器和 wd.ActiveDocument.SaveAs 相处得不太好...所以我最终将文档保存在其他地方并以编程方式将文件复制到目的地它需要去,而不是直接保存到目的地

【讨论】:

【参考方案2】:

运行程序的用户是否对该目录具有“创建文件”权限?这就是问题所在。

仅仅能够创建目录可能还不够。

另外,该程序是以什么用户身份运行的? (我认为它是在您的本地权限下运行的 EXE,但只是检查)

【讨论】:

我通过 dll 模拟用户 @DJBurb ~ 而且您绝对肯定用户可以在那里创建文件?我可以建议使目录“授予用户修改”(使用不存在的命令来说明一点)... @drachenstern - 我想是的......当我在另一台机器上以用户身份登录时,我可以毫无问题地在该目录中手动创建一个文件......我不不知道这是否会有所不同 这应该是定义特征。继续进行更改无论如何,看看它告诉你什么,如果你现在可以做到这一点(值得怀疑,但值得一试) 嗯......问题似乎是服务器和 wd.ActiveDocument.SaveAs 相处得不太好......所以我最终将文档保存在其他地方并以编程方式复制文件到它需要去的目的地,而不是直接保存到目的地

以上是关于Word Automation 中的 SaveAs 给我一个“这不是一个有效的文件名”错误的主要内容,如果未能解决你的问题,请参考以下文章

使用jacob的saveAs将word(含有修订标记) to pdf时,如何设置使生成的pdf不含修订内容。

SaveAs 产生不兼容的文件类型和扩展名错误(运行时错误 6294)

word 保存错误

QTP-创建一个word文件

Test Automation FX 中的错误报告

python 使用vRAAPIClient为vRealize Automation中的所有业务组创建预留