ZIP文件解压后DLL版本信息丢失

接 

ZIP文件上传到服务端,客户端下载后解压时创建文件读取流数据和服务端保存不一样的时候会丢失dll的版本信息,导致dll无法加载;dll之间的引用版本信息是绑定的,没有版本信息会出现引用错误。

以下是优化过的代码

服务端保存文件方法:

int bufferSize = 1024;
                byte[] buffer = new byte[bufferSize];
                int uploadFileLength = 0;               
                
                string saveFullPath = Server.MapPath("~/Plugins/") + "\\" + Request.QueryString["Filename"].ToString();
                using (FileStream fs = new FileStream(saveFullPath, FileMode.Create))
                {
                    while (uploadFileLength < Request.InputStream.Length)
                    {
                        //从输入流放进缓冲区
                        int bytes = Request.InputStream.Read(buffer, 0, bufferSize);
                        fs.Write(buffer, 0, bytes);
                        fs.Flush(); // 字节写入文件流
                        uploadFileLength += bytes;// 更新大小
                    }
                    fs.Close();
                }                
                uploadFileLength = 0; 

客户端解压保存文件方法:

 fs = File.Create(fileName);                                         
  int size = 1024;
  byte[] data = new byte[size];
while (true)
{
    size = zipStream.Read(data, 0, data.Length);
    if (size > 0)
      fs.Write(data, 0, size);
    else
      break;
}                            

       

压缩文件 1. Function MyZip_AddFile(SrcFile,ZipFile:pchar):integer;stdcall; 功能 : 将文件SrcFile添加到压缩文档ZipFile 参数 : SrcFile 待压缩文件(全路径) Zipfile 目标文件(全路径) 返回 : 0 成功 说明 : 同名文件将自动被替换(overwrite) 2. Function MyZip_AddDirectory(SrcPath,ZipFile:pchar):integer;stdcall; 功能 : 将目录SrcPath里的所有文件(子目录)添加到压缩文档ZipFile 参数 : SrcPath 待压缩目录(全路径) Zipfile 目标文件(全路径) 返回 : 0 成功 说明 : 同名文件将自动被替换(overwrite) 解压文件 1. Function MyZip_ExtractFileAll(ZipFile,PathName:pchar):integer;stdcall; 功能 : 将ZipFile中包含的所有文件解包到文件夹PathName 参数 : ZipFile 压缩文件(全路径) PathName 文件输出路径(如果不存在,则自动创建该目录) 返回 : 0 解包的文件数量 说明 : 同名文件将自动被替换(overwrite) 2. Function MyZip_ExtractFile(ZipFile,srcName,DstName:pchar):integer;stdcall; 功能 : 从ZipFile中将由SrcName指定的文件解包到由DstName指定的目标文件 参数 : Zipfile 压缩文件(全路径) SrcName 需要解包的文件(不包含路径) DstName 目标文件(全路径) 返回 : 0 成功 说明 : 同名文件将自动被替换(overwrite) 错误信息 1. Function MyZip_GetLastError(out msg : ShortString):integer;stdcall; 功能 : 在压缩/解压的过程中,如有错误发生,可立即调用该函数获取相关错误信息,并由msg返回 参数 : msg 用于返回相关错误信息 返回 : 0 成功
文件名:MyZip.dll 函 数: ************************************************** *** *** *** 压缩文件 *** *** *** ************************************************** 1. Function MyZip_AddFile(SrcFile,ZipFile:pchar):integer;stdcall; 功能 : 将文件SrcFile添加到压缩文档ZipFile 参数 : SrcFile 待压缩文件(全路径) Zipfile 目标文件(全路径) 返回 : 0 成功 说明 : 同名文件将自动被替换(overwrite) 2. Function MyZip_AddDirectory(SrcPath,ZipFile:pchar):integer;stdcall; 功能 : 将目录SrcPath里的所有文件(子目录)添加到压缩文档ZipFile 参数 : SrcPath 待压缩目录(全路径) Zipfile 目标文件(全路径) 返回 : 0 成功 说明 : 同名文件将自动被替换(overwrite) ************************************************** *** *** *** 解压缩文件 *** *** *** ************************************************** 1. Function MyZip_ExtractFileAll(ZipFile,PathName:pchar):integer;stdcall; 功能 : 将ZipFile中包含的所有文件解包到文件夹PathName 参数 : ZipFile 压缩文件(全路径) PathName 文件输出路径(如果不存在,则自动创建该目录) 返回 : 0 解包的文件数量 说明 : 同名文件将自动被替换(overwrite) 2. Function MyZip_ExtractFile(ZipFile,srcName,DstName:pchar):integer;stdcall; 功能 : 从ZipFile中将由SrcName指定的文件解包到由DstName指定的目标文件 参数 : Zipfile 压缩文件(全路径) SrcName 需要解包的文件(不包含路径) DstName 目标文件(全路径) 返回 : 0 成功 说明 : 同名文件将自动被替换(overwrite) ************************************************** *** *** *** 获取错误信息 *** *** *** ************************************************** 1. Function MyZip_GetLastError(out msg : ShortString):integer;stdcall; 功能 : 在压缩/解压的过程中,如有错误发生,可立即调用该函数获取相关错误信息,并由msg返回 参数 : msg 用于返回相关错误信息 返回 : 0 成功
### 回答1: dll文件修复器.zip是一个压缩文件,其中包含了一个用于修复dll文件的工具。dll文件是在Windows操作系统中常见的动态链接库文件,它们包含了系统和应用程序所需的函数和数据。当dll文件损坏或丢失时,可能会导致应用程序无法正常运行。 dll文件修复器.zip提供了一个简单而有效的解决方案,通过运行其中的工具,可以自动修复破损的dll文件。这个工具通常具有用户友好的界面,使得使用起来十分方便。用户只需打开工具并选择需要修复的dll文件,然后点击修复按钮即可。 修复过程中,dll文件修复器.zip会扫描系统中可用的dll文件,找到与选定的文件匹配的正确版本,并将其替换到正确的位置上。修复完成后,用户可以重新启动应用程序,通常能够发现之前无法运行的问题已经解决了。 使用dll文件修复器.zip时,需要注意以下几点:首先,务必从可靠的来源下载并确保文件的完整性;其次,在使用工具前,最好先备份需要修复的dll文件,以防万一;最后,在修复过程中,最好不要关闭工具或中断修复操作,以免引发其他问题。 总结而言,dll文件修复器.zip是一个帮助修复dll文件的工具,它能够自动扫描并替换系统中破损的dll文件,解决相关的运行问题。但使用前需注意文件的来源和完整性,并在修复过程中保持工具的稳定运行。 ### 回答2: dll文件修复器.zip 是一个文件压缩包,其中包含用于修复dll文件的工具。dll文件(动态链接库)是Windows操作系统中的重要文件,它包含了许多功能和程序代码,供程序和应用程序共享使用。当dll文件损坏、丢失或受到恶意软件的侵害时,可能会导致相关程序无法正常运行。 dll文件修复器.zip 通过提供一系列修复方法和工具来解决dll文件问题。这个压缩包可能包含了修复程序和独立的dll文件备份。修复程序可以扫描系统中的dll文件,检测到问题后尝试修复或替换损坏的文件。备份的dll文件可以用于替换损坏的文件,以确保系统正常运行。 使用dll文件修复器.zip 需要按照以下步骤进行操作:首先,解压缩这个压缩包,获得修复器的安装程序和相关文件。然后,运行安装程序,按照提示完成安装。安装完成后,打开修复器,选择相应的dll文件修复选项,如扫描、修复或替换。根据修复器的指示,进行相应的操作。最后,重新启动系统,以确保修复操作的生效。 需要注意的是,使用dll文件修复器.zip 来修复dll文件问题可能并不总是成功的。有些dll文件问题可能比较复杂,需要进一步的专业支持。此外,使用任何修复工具都需要小心,确保其来源可信、安全可靠,并遵循软件提供商的使用指引。在使用之前,最好备份系统和重要数据,以避免任何意外损失。 ### 回答3: DLL文件修复器.zip是一个压缩文件,其中包含了DLL文件修复器的程序和相关资源文件DLL文件是Windows操作系统中的动态链接库,它们包含了许多系统函数和程序所需的代码和数据,用于提供各种功能和服务。 当某个应用程序或系统出现了DLL文件损坏或丢失的情况时,会导致该程序无法正常运行或系统功能受阻。而DLL文件修复器就是一种解决这类问题的工具。它可以扫描系统中的DLL文件,并找出损坏或丢失文件。然后通过修复、还原或重新安装DLL文件来恢复系统的正常运行。 DLL文件修复器.zip中的程序可以自动识别系统中的DLL文件问题,并根据问题的严重程度提供相应的修复方案。修复器中可能包含了各种修复方法和算法,以确保修复的成功率和效果。 当用户下载并解压DLL文件修复器.zip后,可以直接运行解压后的程序。用户可以选择执行全面的系统扫描,也可以选择指定特定的DLL文件进行修复。修复器会在修复过程中提供相应的进度和结果反馈,以便用户了解修复的情况。 总而言之,DLL文件修复器.zip是一个用于修复损坏或丢失DLL文件的工具包。它能够快速准确地识别并修复系统中的DLL文件问题,从而恢复系统的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值