Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不同Windows版本的大文件名(压缩)的程序截断_C#_Excel_Zip_Windows 8.1_Gembox Spreadsheet - Fatal编程技术网

C# 不同Windows版本的大文件名(压缩)的程序截断

C# 不同Windows版本的大文件名(压缩)的程序截断,c#,excel,zip,windows-8.1,gembox-spreadsheet,C#,Excel,Zip,Windows 8.1,Gembox Spreadsheet,因此,我正在修复一个程序,该程序允许用户创建一个Excel文档,它在向客户提供服务之前先对该文档进行压缩。客户投诉之一是,虽然zip文件总是可以下载的,但有时用户必须在打开Excel文件之前使用标准的Windows压缩工具将其从存档中复制(或解压缩)。标准的“文件名太长”错误 当然,算法是将.zip存档名称设置为与报表相同的名称,可以是100多个字符长的字符串 我正在实现的解决方案是检查潜在报告的长度,看看它是否违反了MAX_路径,并根据需要截断.zip名称 在Windows7上进行测试,效果非

因此,我正在修复一个程序,该程序允许用户创建一个Excel文档,它在向客户提供服务之前先对该文档进行压缩。客户投诉之一是,虽然zip文件总是可以下载的,但有时用户必须在打开Excel文件之前使用标准的Windows压缩工具将其从存档中复制(或解压缩)。标准的“文件名太长”错误

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

我正在实现的解决方案是检查潜在报告的长度,看看它是否违反了MAX_路径,并根据需要截断.zip名称

在Windows7上进行测试,效果非常好。但在8.1下测试时会出现一些奇怪的情况

它仍然会抛出一个试图从存档打开的错误-但是这个错误有点神秘

很抱歉,我们找不到C:\Users{My user name}\AppData\Local\Temp\Temp1{被截断的存档名称的其余部分}.zip{Full file name}.xlsx。是否可能它已被移动、重命名或删除

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

通常情况下,我会尝试进一步调整,但在Windows8.1平台上进行测试目前涉及大量开销,而且看起来问题不在于路径名长度

发生了什么事?Windows 8是否在存档中的名称长度方面存在问题,或者

另外,我之所以在这里发布这篇文章,而不是说用户体验,是因为我觉得解决方案将是程序化的——在程序的代码中。我很乐意承认,“允许最终用户跳过点击提取按钮”是为了提供一种简单的用户体验,但是截断整个路径的长度在Windows7上解决了这个问题


只是不是8.1,谷歌搜索SO网站系列没有任何帮助——讽刺的是,因为关键字Excel。

所以,正如我在上面的链接()中发现的,关键似乎是,尽管最大路径是260个字符,但Excel 2013无法处理超过212个字符的任何内容


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

因此,正如我在上面的链接()中发现的,关键似乎是,尽管最大路径为260个字符,Excel 2013无法处理超过212的任何内容

我仍然无法对此进行应有的严格测试,但如果其他任何人遇到此问题,并在寻求修复时发现此页面,只需将其截断,直到整个路径低于212,您就可以正常运行。

刚刚找到此链接。。。这可能只是因为Windows7稍微宽松了一点,Windows8.1失去了进展,因为,再一次,似乎有一个最佳点,W7将打开一条路径,而W8.1不会。我将把这件事留一点时间,看看是否有人能提供比“更强烈地截断”更精致的东西,否则我会把它变成一个答案,让下一个人更容易理解。刚找到这个链接。。。这可能只是因为Windows7稍微宽松了一点,Windows8.1失去了进展,因为,再一次,似乎有一个最佳点,W7将打开一条路径,而W8.1不会。我将把这件事留一点时间,看看是否有人能提供比“更强烈地截断”更精致的东西,否则我会把它变成一个答案,让下一个人更容易理解。