1

所以我正在修复一个程序,该程序允许用户创建一个 Excel 文档,它在提供给客户之前首先对其进行压缩。客户抱怨之一是,虽然始终可以下载 zip 文件,但有时用户必须使用标准 Windows 压缩工具将 Excel 文件从存档文件中复制出来(或解压缩),然后才能打开它。标准的“文件名太长”错误。

当然,算法是将 .zip 存档名称设置为与报告相同 - 可以是 100 多个字符长的字符串。

我正在实施的解决方案是检查潜在报告的长度以查看它是否自然地违反 MAX_PATH,并根据需要截断 .zip 名称。

在 Windows 7 上进行测试,效果很好。但是在 8.1 下测试时发生了一些奇怪的事情

尝试从存档中打开它仍然会引发错误 - 但这个错误有点神秘。

“抱歉,我们找不到 C:\Users{我的用户名}\AppData\Local\Temp\Temp1_{其余截断的存档名称}.zip{完整文件名}.xlsx。它可能被移动了,改名还是删除?”

无论文件是从浏览器“打开”还是“保存”,此错误都会不断弹出。

通常,我只是尝试进一步调整,但目前在 Windows 8.1 平台上进行测试涉及大量开销,而且看起来问题不在于路径名长度。

到底是怎么回事?Windows 8 档案中的名称长度是否存在问题,或者...?

另外,我在这里发布这个而不是用户体验的原因是因为我觉得解决方案将是程序化的——在程序的代码中。我欣然承认,“允许最终用户跳过点击提取按钮”是为了提供简单的用户体验,但截断整个路径的长度解决了 Windows 7 上的问题。

只是不是 8.1,并且谷歌搜索/搜索 SO 站点系列没有提供任何帮助 - 具有讽刺意味的是,因为关键字 Excel。

4

1 回答 1

0

所以,正如我在上面的链接中找到的(http://answers.microsoft.com/en-us/office/forum/office_2013_release-excel/sorry-unable-to-find/595333d0-1463-499f-967e-4da8ac2e2047? auth=1 ) 关键似乎是,虽然 MAX_PATH 是 260 个字符,但 Excel 2013 无法处理超过 212 个字符。

我仍然无法对其进行应有的严格测试,但是如果其他人遇到此问题,并在寻求修复的过程中发现此页面,请截断直到整个路径低于 212 并且您应该很好。

于 2015-07-31T13:31:58.600 回答