<?php include_金沙城中心赌场,once(‘include/pclzip.lib.php’); $archive = new
PclZip(‘archive.zip’); //解压缩到extract/folder/这个目录中 $list =
$archive->extract(PCLZIP_OPT_PATH, “extract/folder/”);
//增加这个目录在压缩档中,完成以后压缩档里面会有backup这个目录,backup里面会有这两个档案
$list = $archive->create(“file.txt,image.gif”,PCLZIP_OPT_ADD_PATH,
“backup”); //去掉部份的路径,这里完成后会变成test/file.txt $list =
$archive->add(“/usr/local/user/test/file.txt”,PCLZIP_OPT_REMOVE_PATH,
“/usr/local/user”);
//把所有路径都去掉,这个压缩档建立完后,里面就只会有file.txt跟image.gif,不会有目录了
$list = $archive->create(“data/file.txt
images/image.gif”,PCLZIP_OPT_REMOVE_ALL_PATH);
//把解压缩出来的档案的CHMOD设成0777 $list =
$archive->extract(PCLZIP_OPT_SET_CHMOD, 0777);
//解压缩部份的档案,这个参数是使用档案名称判别
//引数可以用下面这样的阵列 $rule_list[0] = ‘test/aaa.txt’;
$rule_list[1] = ‘test/ddd.txt’;
//或是下面这样,一个字串中,用逗号分隔每个要解压缩的档案 $rule_list =
“test/aaa.txt,test/ddd.txt”; $list =
$archive->extract(PCLZIP_OPT_BY_NAME,$rule_list);
//解压缩部份的档案,使用php的ereg()函式,档案名称有比对成功的都会被解压缩
$list = $archive->extract(PCLZIP_OPT_BY_EREG, “aa”);
//解压缩部份的档案,使用php的preg_match()函式,档案名称有比对成功的都会被解压缩
$list = $archive->extract(PCLZIP_OPT_BY_PREG, “/^bb/”);
//上面这两个函式如果不懂的话,请先研究正规表示法(Regular Expression)
//依照阵列中元素的索引解压缩,可是我不太懂index啥 = =a $list =
$archive->extract(PCLZIP_OPT_BY_INDEX, array(‘0-1′,’6-7’));
//将一个档案内容解压缩成一个字串 $list =
$archive->extract(PCLZIP_OPT_BY_NAME,
“data/readme.txt”,PCLZIP_OPT_EXTRACT_AS_STRING);
//将一个档案内容解压缩完后直接输出(echo) $list =
$archive->extract(PCLZIP_OPT_BY_NAME,
“data/readme.txt”,PCLZIP_OPT_EXTRACT_IN_OUTPUT);
//将一个档案加入一个压缩档中,但不会对此档案压缩 $list =
$archive->add(“data/file.txt”, PCLZIP_OPT_NO_COMPRESSION);
//对此压缩档增加一个注解,如果原本就有注解的话会被覆盖掉 $list =
$archive->create(“data”, PCLZIP_OPT_COMMENT, “Add a comment”);
//对此压缩档增加一个注解,如果原本就有注解的话会接在后面 $list =
$archive->add(“data”, PCLZIP_OPT_ADD_COMMENT, “Add a comment after
the existing one”);
//对此压缩档增加一个注解,如果原本就有注解的话会放在原本的注解前面 $list
= $archive->add(“data”, PCLZIP_OPT_PREPEND_COMMENT, “Add a comment
before the existing one”); if ($list == 0) { die(“Error :
“.$archive->errorInfo(true)); } ?>

压缩 zip

 

 

此解压程序做成的压缩包能用手机上java解压,不过应该也能实现压缩jar格式(这个还没试验过.不过用Android系统能解压了.)

public class ZipClass
{
/// <summary>
/// ZIP:压缩文件夹
/// add yuangang by 2016-06-13
/// </summary>
/// <param
name=”DirectoryToZip”>需要压缩的文件夹(绝对路径)</param>
/// <param
name=”ZipedPath”>压缩后的文件路径(绝对路径)</param>
/// <param name=”ZipedFileName”>压缩后的文件名称(文件名,默认
同源文件夹同名)</param>
/// <param name=”IsEncrypt”>是否加密(默认 加密)</param>
public static void ZipDirectory(string DirectoryToZip, string ZipedPath,
string ZipedFileName = “”, bool IsEncrypt = false)
{
//如果目录不存在,则报错
if (!System.IO.Directory.Exists(DirectoryToZip))
{
throw new System.IO.FileNotFoundException(“指定的目录: ” +
DirectoryToZip + ” 不存在!”);
}

 

//文件名称(默认同源文件名称相同)
string ZipFileName = string.IsNullOrEmpty(ZipedFileName) ? ZipedPath +
“\\” + new DirectoryInfo(DirectoryToZip).Name + “.zip” : ZipedPath +
“\\” + ZipedFileName + “.zip”;

 

using (System.IO.FileStream ZipFile =
System.IO.File.Create(ZipFileName))
{
using (ZipOutputStream s = new ZipOutputStream(ZipFile))
{
if (IsEncrypt)
{
//压缩文件加密
s.Password = “123”;
}
ZipSetp(DirectoryToZip, s, “”);
}
}
}
/// <summary>
/// 递归遍历目录
/// add yuangang by 2016-06-13
/// </summary>
private static void ZipSetp(string strDirectory, ZipOutputStream s,
string parentPath)
{
if (strDirectory[strDirectory.Length – 1] !=
Path.DirectorySeparatorChar)
{
strDirectory += Path.DirectorySeparatorChar;
}
Crc32 crc = new Crc32();

下载地址:
PclZip官方地址:
PclZip手册地址:
PEAR类创建ZIP档案文件:
PclZip简介与使用:
PclZip:强大的PHP压缩与解压缩zip类:

string[] filenames = Directory.GetFileSystemEntries(strDirectory);

版权声明:本文为博主原创文章,未经博主允许不得转载。

foreach (string file in filenames)// 遍历所有的文件和目录
{


if (Directory.Exists(file))//
先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
{
string pPath = parentPath;
pPath += file.Substring(file.LastIndexOf(“\\”) + 1);
pPath += “\\”;
ZipSetp(file, s, pPath);
}

else // 否则直接压缩文件
{
//打开压缩文件
using (FileStream fs = File.OpenRead(file))
{

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

string fileName = parentPath + file.Substring(file.LastIndexOf(“\\”) +
1);
ZipEntry entry = new ZipEntry(fileName);

entry.DateTime = DateTime.Now;
entry.Size = fs.Length;

fs.Close();

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

entry.Crc = crc.Value;
s.PutNextEntry(entry);

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

解压zip

#region 解压zip文件
/// <summary>
/// 解压zip文件
/// </summary>
/// <returns></returns>
public static bool jyfile(string _depositPath, string _floderPath)
{

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图