当前位置:首页 » 文件管理 » zc解压旧版

zc解压旧版

发布时间: 2025-01-27 22:35:28

㈠ c#压缩解压 文件夹

我在做项目的时候需要将文件进行压缩和解压缩,于是就从http://www.icsharpcode.net下载了关于压缩和解压缩的源码,但是下载下来后,面对这么多的代码,一时不知如何下手。只好耐下心来,慢慢的研究,总算找到了门路。针对自己的需要改写了文件压缩和解压缩的两个类,分别为ZipClass和UnZipClass。其中碰到了不少困难,就决定写出来压缩和解压的程序后,一定把源码贴出来共享,让首次接触压缩和解压缩的朋友可以少走些弯路。下面就来解释如何在C#里用http://www.icsharpcode.net下载的SharpZipLib进行文件的压缩和解压缩。

首先需要在项目里引用SharpZipLib.dll。然后修改其中的关于压缩和解压缩的类。实现源码如下:

/// <summary>
/// 压缩文件
/// </summary>

using System;
using System.IO;

using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.GZip;

namespace Compression
{
public class ZipClass
{

public void ZipFile(string FileToZip, string ZipedFile ,int CompressionLevel, int BlockSize)
{
//如果文件没有找到,则报错
if (! System.IO.File.Exists(FileToZip))
{
throw new System.IO.FileNotFoundException("The specified file " + FileToZip + " could not be found. Zipping aborderd");
}

System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip,System.IO.FileMode.Open , System.IO.FileAccess.Read);
System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile);
ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
ZipEntry ZipEntry = new ZipEntry("ZippedFile");
ZipStream.PutNextEntry(ZipEntry);
ZipStream.SetLevel(CompressionLevel);
byte[] buffer = new byte[BlockSize];
System.Int32 size =StreamToZip.Read(buffer,0,buffer.Length);
ZipStream.Write(buffer,0,size);
try
{
while (size < StreamToZip.Length)
{
int sizeRead =StreamToZip.Read(buffer,0,buffer.Length);
ZipStream.Write(buffer,0,sizeRead);
size += sizeRead;
}
}
catch(System.Exception ex)
{
throw ex;
}
ZipStream.Finish();
ZipStream.Close();
StreamToZip.Close();
}

public void ZipFileMain(string[] args)
{
string[] filenames = Directory.GetFiles(args[0]);

Crc32 crc = new Crc32();
ZipOutputStream s = new ZipOutputStream(File.Create(args[1]));

s.SetLevel(6); // 0 - store only to 9 - means best compression

foreach (string file in filenames)
{
//打开压缩文件
FileStream fs = File.OpenRead(file);

byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
ZipEntry entry = new ZipEntry(file);

entry.DateTime = DateTime.Now;

// set Size and the crc, because the information
// about the size and crc should be stored in the header
// if it is not set it is automatically written in the footer.
// (in this case size == crc == -1 in the header)
// Some ZIP programs have problems with zip files that don't store
// the size and crc in the header.
entry.Size = fs.Length;
fs.Close();

crc.Reset();
crc.Update(buffer);

entry.Crc = crc.Value;

s.PutNextEntry(entry);

s.Write(buffer, 0, buffer.Length);

}

s.Finish();
s.Close();
}
}
}

现在再来看看解压文件类的源码

/// <summary>
/// 解压文件
/// </summary>

using System;
using System.Text;
using System.Collections;
using System.IO;
using System.Diagnostics;
using System.Runtime.Serialization.Formatters.Binary;
using System.Data;

using ICSharpCode.SharpZipLib.BZip2;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
using ICSharpCode.SharpZipLib.GZip;

namespace DeCompression
{
public class UnZipClass
{
public void UnZip(string[] args)
{
ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]));

ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)
{

string directoryName = Path.GetDirectoryName(args[1]);
string fileName = Path.GetFileName(theEntry.Name);

//生成解压目录
Directory.CreateDirectory(directoryName);

if (fileName != String.Empty)
{
//解压文件到指定的目录
FileStream streamWriter = File.Create(args[1]+theEntry.Name);

int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break;
}
}

streamWriter.Close();
}
}
s.Close();
}
}
}

有了压缩和解压缩的类以后,就要在窗体里调用了。怎么?是新手,不会调用?Ok,接着往下看如何在窗体里调用。

首先在窗体里放置两个命令按钮(不要告诉我你不会放啊~),然后编写以下源码

/// <summary>
/// 调用源码
/// </summary>

private void button2_Click_1(object sender, System.EventArgs e)
{
string []FileProperties=new string[2];
FileProperties[0]="C:\\unzipped\\";//待压缩文件目录
FileProperties[1]="C:\\zip\\a.zip"; //压缩后的目标文件
ZipClass Zc=new ZipClass();
Zc.ZipFileMain(FileProperties);
}

private void button2_Click(object sender, System.EventArgs e)
{
string []FileProperties=new string[2];
FileProperties[0]="C:\\zip\\test.zip";//待解压的文件
FileProperties[1]="C:\\unzipped\\";//解压后放置的目标目录
UnZipClass UnZc=new UnZipClass();
UnZc.UnZip(FileProperties);
}

好了,到此为止,如何压缩和解压缩的类都已经完成了,需要的朋友直接拿走调吧。

㈡ C++语言怎么用zlib库来解压.ISO或.zip文件

下面是使用zlib库的压缩和解压缩演示代码:

#include <stdlib.h>
#include <stdio.h>
#include <zlib.h>
int main(int argc, char* argv[])
{
FILE* file;
uLong flen;
unsigned char* fbuf = NULL;
uLong clen;
unsigned char* cbuf = NULL;
/* 通过命令行参数将srcfile文件的数据压缩后存放到dstfile文件中 */
if(argc < 3)
{
printf("Usage: zcdemo srcfile dstfile\n");
return -1;
}
if((file = fopen(argv[1], "rb")) == NULL)
{
printf("Can\'t open %s!\n", argv[1]);
return -1;
}
/* 装载源文件数据到缓冲区 */
fseek(file, 0L, SEEK_END);    /* 跳到文件末尾 */
flen = ftell(file);        /* 获取文件长度 */
fseek(file, 0L, SEEK_SET);
if((fbuf = (unsigned char*)malloc(sizeof(unsigned char) * flen)) == NULL)
{
printf("No enough memory!\n");
fclose(file);
return -1;
}
fread(fbuf, sizeof(unsigned char), flen, file);
/* 压缩数据 */
clen = compressBound(flen);
if((cbuf = (unsigned char*)malloc(sizeof(unsigned char) * clen)) == NULL)
{
printf("No enough memory!\n");
fclose(file);
return -1;
}
if(compress(cbuf, &clen, fbuf, flen) != Z_OK)
{
printf("Compress %s failed!\n", argv[1]);
return -1;
}
fclose(file);
if((file = fopen(argv[2], "wb")) == NULL)
{
printf("Can\'t create %s!\n", argv[2]);
return -1;
}
/* 保存压缩后的数据到目标文件 */
fwrite(&flen, sizeof(uLong), 1, file);    /* 写入源文件长度 */
fwrite(&clen, sizeof(uLong), 1, file);    /* 写入目标数据长度 */
fwrite(cbuf, sizeof(unsigned char), clen, file);
fclose(file);
free(fbuf);
free(cbuf);
return 0;
}

㈢ 为什么摄像头打不开啊

首先,先卸载你原来的程序
卸载方法:右击“我的电脑”-“属性”-“硬件”-“设备管理器”或者直接按Ctrl+F1,然后打开“通用串行总线控制器”,把下面的"Usb Root Hub"都删除掉。
还有就是打开“控制面板”的“添加删除程序”有没有摄像头的应用程序如vm301的程序卸载掉
2、然后重新启动,重启之后就会找到新硬件,这时不要选择自动安装,然后点击“下一步”,然后把“搜索软盘、CD rom”打钩,其它的有钩的通通去掉。并且放上光盘,不要从光盘里安装驱动。让系统自动搜索。
这样就可以安装成功了。
一、 驱动不容易安装的原因
1、 目前市面上流行的中星微摄像头驱动版本很多,许多用户在安装卸载驱动过程中残留有垃圾文件在系统注册表里面,造成后面的驱动更新过程中安装困难;
2、 目前市面上存在着一种克隆操作系统,里面集成了中星微旧版并同过了WHQL的驱动,当用户安装新买的摄像头或更新最新驱动后,摄像头无法正常工作;
方法一、自动卸载方法
步骤一、点击开始菜单中对应驱动的Uninstall卸载,(有可能Uninstall的功能已经破坏,那么可以通过安装新驱动进行反安装,系统会首先将旧驱动卸载掉,同样也可以达到目的。)
步骤二、在新的驱动安装前选择附件中以下相对应的可执行文件:
FOR_XP_ME_98.EXE 用于Windows XP/ME/98
FOR_Win2K.EXE 用于Windows 2000
(注意:该工具要求系统的默认路径是C盘才有效,在Windows ME/98操作系统下如出现错误对话框,表示系统已经干净了,该工具不会对已经安装的驱动产生危害)
步骤三、安装新的驱动
方法二、手动卸载方法
步骤一、在我的电脑-工具-文件夹选项-查看中将隐藏文件和文件夹选择为“选择所有文件和文件夹
然后到C:\Windows\inf文件夹中将所有的OEM文件(如oem0.inf,oem0.pnf;oem1.inf,oem1.pnf…)剪切并转移到另外的目录中保存或者手动删除掉该摄像头对应的oem文件
步骤二、完成上面的步骤后,插入USB摄像头,这时电脑会发现新硬件并弹出安装驱动的信息,选择取消,然后用鼠标右键点击我的电脑,选择属性,在弹出系统属性界面中,进入系统属性-硬件-设备管理器将带有感叹号的PC CAMERA按鼠标右键卸载;
步骤三、拔除摄像头,开始安装新的驱动。
针对以上第二种现象
步骤一、克隆操作系统是将摄像头驱动默认存放在C:\Windows\Driver\Camera\301P文件夹下面,当你点击新的摄像头驱动光盘安装时,系统不会提示已经存在有摄像头驱动并把此驱动卸载,请把这个文件夹找到并删除掉;
步骤二、先安装新的摄像头驱动,再插上摄像头装载硬件,安装完成后重新启动电脑后可以正常使用;
步骤三、不需重复以上两个步骤,直接点击新的光盘安装最新的驱动,插上摄像头后系统检测到新硬件,并自动完成硬件驱动装载;
步骤四、进入到设备管理器中,,可以看到图像处理设备已经成功安装,但当你打开“AMCAP”预览图像时会出现无法预览、白屏、黑屏现象;
步骤五、把鼠标右键放在图像处理设备的“Vimicro USB PC Camera(ZC0301PL)”更新驱动程序,出现对话框后选择“从列表或指定为位置安装
步骤六选择下一步后选择“不要搜索”,进入“从软盘安装”界面。
步骤七:点击浏览,将路径指向驱动光盘目录或最新驱动目录下面的“usbvm31b.inf”步骤八:一直点击“下一步”完成驱动安装

㈣ 手机卡刷机怎么刷

安卓手机如何用卡刷机
进入Recovery方法:先把机器关掉(拔电池再插上)、接着插上数据线或充电器(机器液晶显示正在充电)、然后按着音量键“+”与音量键“-”加关机或开机键(同时按着三至五秒)

Recovery操作方法:电源关机键为确认,音量键+为上,音量键-为下

刷ROM1、下载自己机型的ROM包,放到手机SD卡中,关机进入recovery 模式

2、如果recovery版本是中文的,选择‘清空所有数据’ 和‘清空所有缓存’这两个选项;如果没有recovery版本为英文的话选择‘wipe data/factory reset’和‘wipe cache partition’这两个选项

3、进入后,选择带有“是”或者“YES”的项

4、返回recovery主界面,中文版选择“从sd卡选择刷机包”;英文版的选择“install zip from sdcard”

5、再选择“从SD卡选择zip刷机包”;英文版的为第一个选项“choose zip form sdcard”

6、找到SD卡中你所要刷的那个ROM包,xxxxx.zip

7、确定后,开始刷机,等待刷机完成,中文提示“刷机完成”;英文版提示“Install from sdcard plete ”

8、返回recovery主界面,选择“立即重启系统”;英文版“reboot system now”

刷完机后第一次开机会比较慢,请耐心等待。
手机卡死了怎么刷机啊
要是安卓机 你关机状态音量加减 和电源键 一起按住 不松
安卓手机刷机怎么刷
刷机很容易的。线刷、卡刷都行,看你下载的rom后缀名。后缀名为zip的,可以线刷,也可以卡刷,dar、md5是线刷。一、卡刷是把rom复制到SD卡,关机后按音量键“+”和home键,再按住电源键,有界面了就按音量“+”或“-”选择“apply upd from external storage”(从外部的存储应用中进行更新),按电源键确认;以音量“+”或“-”选择SD卡上的刷机room(可以在菜单里看到你复制到SD卡根目录下的刷机rom),按电源键确认。刷完自动滚动到recovery界面,按音量“+”或“-”选择“reboot system now”(重启系统);

二、线刷

1、用刷机大师获取ROM权限;

2、勾选“未知来源”、勾选“USB调试”;

3、用刷机大师备份数据;

4、用91手机助手、豌豆荚安装手机驱动;

5、关机状态,按住音量键“-”和home键,再按住电源键,有界面了就按音量“+”;

6、手机与电脑连接(数据线);

7、启动odin刷机工具软件,当ID:(端口号),即第三行第一个空框出现黄色时,点击PDA,载入“I9100GZCLPL_I9100GZCLPL_I9100GOZHLPL_HOME.tar.md5”,再点击“开始”(start),当第一行第一个大空框出现绿色“PASSI”字样,说明刷机成功!

三、用刷机大师(可以省去卡刷zip刷机ROM的麻烦)

1、启动刷机大师;

2、备份数据;

3、点击“一键刷机”

4、载入zip手机ROM包

5、开始刷机。
手机怎么重新刷机?
刷机方法需要以手机实际故障而定。

以卡刷为例):用内存卡(SD、TF之类)来刷机,

卡刷流程:

1,先下载一个对应阀型的卡刷刷机包(可以到官方,ROM之家或ROM基地下载)。

2,把下载的刷机包直接放在SD卡的根目录。

3,关机,卸掉SIM卡,内存卡装好,建议内存卡里重要东西要备份。

4,关机时,同时按开机按键和音量加键,大概十秒钟,然后放手。

5,进入recovery模式即REC模式。

6,选wipe cache partition 清理缓存。

7,完成清理缓存后选wipe data/factory ,恢复出厂设置。

8,先选择“install zip from sdcard”,电源键确定,再选择apply sdcard:update ,电源键确定,就是从内存卡里选择刷机包进行刷机,耐心等待完成。
手机死机后该如何刷机
可以

卡刷线刷都可以,只要你能在网络搜索到与你手机品牌机型相一致的刷机包

卡刷

第一步:下载你需要卡刷的文件,解压得到zip格式的文件,然后放到TF内存卡根目录下。然后关机,拿出电池10秒后,再放回去,按住音量+,再按开机键,就进去卡刷模式了

第二步:音量键为上下,开机键为选择,刷机的时候选择“从SD卡选择更新”

第三步:选择“从SD选择升级包更新

第四步:选择你下载的刷机包,驱动,或者补丁文件(注意文件包不能有中文名)

第五步:选择“是”就开机刷机了

刷机完之后还应该恢复一下出厂设置

提示:用卡刷如果系统自带的recovery工程模式不完整,需要手动刷入与手机品牌机型相一致的第三方recovery工程模式。刷入第三方recovery,需要找到与手机品牌机型一致的recovery文件,在已经获取到ROOT权限的手机上,打开USB调试,用数据线把电脑连接手机,把第三方recovery文件复制到手机的SD卡卡根,然后在手机上安装移动叔叔工具箱软件,更新recovery,导入,一路确定,手机重启。即可进入recovery工程模式进行刷机了。

线刷

打开电脑在网络搜联想的品牌官网,看看有没有与你的手机机型一致的线刷包,然后手机关机用数据线连接到电脑,卸下手机电池,按手机的开机键(或开机键+音量键)安装驱动,然后在电脑上运行刷机平台,载入刷机资料,点击开始刷机,带进度条满格,刷机即告完成。
酷派大神手机最简单的刷机怎样刷
【刷机教程】介绍两种方法

(1)一键刷机。

使用刷机软件一键刷机,例如刷机助手,很简单,注意备份。

(2)卡刷

按常规卡刷流程刷入即可,注意刷第三方rec,刷入包之前要双清,电池电量,可用内存!

卡刷步骤如下:

第一步:导入第三方Recovery(想刷第三方rom,第三方 Recovery不可或缺;如果前面已经刷过三方recovery,就不需要再刷了)。

第二步:刷第三方ROM包(卡刷)1. 下载ROM包,无需解压,复制到SD卡根目录或者内置卡;

2. 进入Recovery模式

2.1 关机状态下,按住音量上+开机键开机,并按住两键不放,直到进入Recovery;

2.2 开机状态下,选择“重新启动”后,按住音量键上不放,即可进入 recovery模式;

3. wipe data/factory reset(清空所有数据) (音量键控制上下,电源键确定,以下同)

4. Yes

5. wipe cache partition(清空缓存数据)

6. Yes

7. install zip from sdcard(从SD卡选择刷机包)

8. choose zip from sdcard(从SD卡选择ZIP文件)

9. 找到安装包,开刷

10 最后选择重启手机,恭喜刷机成功! (首次开机需要2-3分钟左右,请耐心等待)

刷机包下载shuajijia
为什么安卓手机越用越卡?刷机了还是很卡呢?
硬件磨损
无卡手机刷机怎么刷?
您好,三星官网没有提供刷机软件。由于刷机存在风险,如因自行刷机后导致的手机问题,还有可能会影响包修,因此我们不建议您自行刷机。

若手机因系统故障无法正常使用或自行刷机后导致手机出现问题,建议您将机器送到三星售后服务中心,由工程师帮助检查处理。
手机刷机不使内存卡怎么刷
手机进入recovery模式进行刷机:关机状态下长按Home键和关机键。如果长按后出现一个叹号和手机图片,原因是recovery版本较旧,这时同时按接听和挂机键,然后再按Home键和关机键可进入recovery模式。如果出现这种情况,建议升级recovery到1.6.2。

进入recovery模式后,先执行WIPE,把所有选项都WIPE一遍,然后进入flash zip from sdcard,按照说明的顺序开刷。

提示:刷机之前记得先备份联系人和短信以及其它重要文档。
我手机是在移动营业厅领的很卡我想刷机怎么刷是4g的 30分
移动营业厅领的手机

具体是什么机型

可以去安卓论坛搜索对应教程

热点内容
asp缓存类 发布:2025-01-29 08:29:58 浏览:633
plc三菱编程软件下载 发布:2025-01-29 08:17:35 浏览:688
服务器系统有什么要求 发布:2025-01-29 07:57:49 浏览:105
编程课的网站 发布:2025-01-29 07:43:54 浏览:189
win7不能访问共享打印机 发布:2025-01-29 07:36:10 浏览:656
网站数据库更新 发布:2025-01-29 07:36:10 浏览:560
为什么安卓虚拟机 发布:2025-01-29 07:35:34 浏览:964
安卓手机为什么会无缘无故就关机 发布:2025-01-29 07:29:52 浏览:977
数据存储有哪几种 发布:2025-01-29 07:21:21 浏览:753
sql自定义查询 发布:2025-01-29 07:13:39 浏览:615