Foxtable(狐表)用户栏目专家坐堂 → zipfile 和中文乱码


  共有5505人关注过本帖树形打印复制链接

主题:zipfile 和中文乱码

帅哥哟,离线,有人找我吗?
lur320
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
zipfile 和中文乱码  发帖心情 Post By:2019/2/26 13:35:00 [显示全部帖子]

如下代码,用于制作1个zip压缩包,但是当待压缩的文件有中文字符时,会出现乱码。请问如何处理?我不能修改客户端默认的ZIP程序。
Dim fileloc  As String=Args(0)

Dim filenam,newfileloc As String

If FileSys.DirectoryExists(ProjectPath & "tempfile\zipfs")=False Then
    FileSys.CreateDirectory(ProjectPath & "tempfile\zipfs")
End If

Dim zip As New zipFile
filenam=ProjectPath & "tempfile\zipfs\tempzip" & Val2 & ".zip"

Do While FileSys.FileExists(filenam)
    Val2 = Rand.Next(1000)
    filenam=ProjectPath & "tempfile\zipfs\tempzip" & Val2 & ".zip"
Loop


zip.Create(filenam)
zip.AddFile(fileloc)   就是这里出问题,如果fileloc含有中文字符,则放入zip文件后会被乱码替代掉,并且不能再打开。
zip.Close()

Return filenam
[此贴子已经被作者于2019/2/26 13:36:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2019/2/28 9:44:00 [显示全部帖子]

确认了,不是电脑上ZIP文件的问题,而是狐表c1zip.zipfile的bug。
这个c1zip.zipfile仅支持Code Page 437。。。。

用电脑上zip文件手动添加压缩包是OK的,用狐表代码怎不行。

同样的问题见:
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=97839&skin=0

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2019/2/28 10:00:00 [显示全部帖子]

电脑用的是7zip。并且集团管控不能改。
并且刚在没有压缩软件的电脑上试了代码,依旧不能压缩中文名字的文件。
和c1.zip.2.dll的帮助文件说明的现象一致。


 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2019/2/28 10:25:00 [显示全部帖子]

不能修改或安装其他软件,即使OK了。也不能保证发布后每台客户端都是可用的winzip、


如何在狐表里面处理掉这个问题?引用新的dll?或者c1.zip.4.dll ?

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2019/2/28 10:52:00 [显示全部帖子]

除了做DLL的引用,还有什么教程可以用?

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2019/2/28 11:41:00 [显示全部帖子]

我下载了dll文件。然后在拷贝到狐表开发版文件夹,然后引用ICSharpCode.SharpZipLib.dll

在全局代码里面加入了下面这个转化过来的代码:

Public Shared Sub ZipFile(ByVal topDirName As String, ByVal fileNameToZip As String, ByVal ZipedFileName As String, ByVal CompressionLevel As Integer, ByVal password As String, ByVal comment As String)
    Dim ls = New List(Of String) From {
        fileNameToZip
    }
    ZipFile(topDirName, ls.ToArray(), ZipedFileName, CompressionLevel, password, comment)
End Sub

但是报错。
[此贴子已经被作者于2019/2/28 11:42:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2019/2/28 13:44:00 [显示全部帖子]

可用

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2019/2/28 13:51:00 [显示全部帖子]

还有个问题,我在开发板的时候可以用,dll也复制到安装目录里面了。
但是发布后报错,显示找不到这个dll文件。。。

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2019/2/28 13:54:00 [显示全部帖子]

Exception has been thrown by the target of an invocation.
Could not load file or assembly 'ICSharpCode.SharpZipLib, Version=0.85.1.271, Culture=neutral, PublicKeyToken=1b03e6acf1164f73' or one of its dependencies. The system cannot find the file specified.


 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2019/2/28 14:03:00 [显示全部帖子]

看到帮忙文件说明了,需要在发布后再次复制到publish里面去才行。

 回到顶部
总数 11 1 2 下一页