【发布时间】:2019-01-16 12:12:55
【问题描述】:
我正在开发一个 Visual Basic 项目,我们在其中开发了一个 Word 选项卡。 我遇到了一个问题,当用户使用路径超过 255 个字符的 word 文档时,会出现以下错误。
Unexpected error 9105 : String is longer than 255 characters.
我在网上搜索了“255”是如何创建的,发现
在 Windows 中有一个限制,最大绝对文件路径长度为 文件/文件夹是 MAX_PATH(定义为 260)。
也发现了,
Microsoft Office 文档的完整路径包括驱动器号或服务器名称,以及直到并包括文档名称的所有字符和文件夹名称。整个路径在 Word 中不能超过 242 个字符,在 Excel 中不能超过 218 个。
另外我在做这个问题的测试时发现,当文件路径长度为 254 时,我们也有同样的错误,这是因为不可见的 NUL 终止符。
255 = 254 + 1(NUL 终止符)
谁能解释一下这个“255”是如何创建的?理论是什么?
谢谢。
【问题讨论】:
-
我投票结束这个问题,因为这个问题是关于微软做出的设计决定,似乎与开发无关。
-
您是想解决问题,还是只是出于好奇? (好奇并没有错 - 但如果您有特定问题并且可以提供详细信息,您可能会得到更好的回应)
-
@DaveInCaz 我正在解决一个问题,我认为我需要对“255”数字有一个正确的理解。我可以向用户解释“260”或“242”,但无法解释 255。在此问题中,我已指示在用户继续处理路径长度超过的文档/图像/视频/音频时向用户发出警告255,所以使用“GetLongPathNameA”(我遇到过一些长路径被系统缩短的情况,但是在继续我们的应用程序时会出错,所以提取长路径名以给出警告。),我做了我的实施。
标签: windows ms-word vb6 ms-office