當前位置:編程學習大全網 - 源碼下載 - 在C#裏調用icsharpcode.sharpziplib解壓縮文件的問題?

在C#裏調用icsharpcode.sharpziplib解壓縮文件的問題?

C#壓縮文件

方法1:

//filepath想要壓縮文件的地址

//zippath輸出壓縮文件的地址

private void GetFileToZip(string filepath,string zippath)

{ FileStream fs = File.OpenRead(filepath);

byte[] buffer = new byte[fs.Length];

fs.Read(buffer, 0, buffer.Length);

fs.Close(); FileStream ZipFile = File.Create(zippath);

ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);

ZipEntry ZipEntry = new ZipEntry(輸出的文件名稱);

ZipStream.PutNextEntry(ZipEntry);

ZipStream.SetLevel(6); ZipStream.Write(buffer, 0, buffer.Length);

ZipStream.Finish();

ZipStream.Close();

}

方法2:

private void FileToZip(string path,string address)

{

string name = openFileDialog1.FileName.Substring(openFileDialog1.FileName.LastIndexOf("\\")+1);

FileStream StreamToZip = new FileStream(path, FileMode.Open, FileAccess.Read);

FileStream ZipFile = File.Create(address);

ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);

//壓縮文件

ZipEntry ZipEntry = new ZipEntry(name);

ZipStream.PutNextEntry(ZipEntry);

ZipStream.SetLevel(6);

byte[] buffer = new byte[StreamToZip.Length];

StreamToZip.Read(buffer, 0, Convert.ToInt32(StreamToZip.Length));

ZipStream.Write(buffer, 0, Convert.ToInt32(StreamToZip.Length));

ZipStream.Finish();

ZipStream.Close();

StreamToZip.Close(); }

C#解壓文件

private void ZipToFile(string path, string addres)

{

ZipInputStream s = new ZipInputStream(File.OpenRead(path));

ZipEntry fileEntry;

while ((fileEntry = s.GetNextEntry()) != null)

{

string filename = Path.GetFileName(fileEntry.Name);

if (filename != "")

{

filename = addres + "\\" + filename;

FileStream streamWriter = File.Create(filename);

int size = 2048;

byte[] buffer = new byte[size]; size = s.Read(buffer, 0, size);

streamWriter.Write(buffer, 0, size);

streamWriter.Close();

}

}

s.Close();

}

C#壓縮目錄

方法1:

//arg[0]要壓縮的目錄

//arg[1]輸出的壓縮文件

private void DirectoryToZip(string path, string address)

{

//獲取當前文件夾中所有的文件

string[] filenames = Directory.GetFiles(path);

Crc32 crc = new Crc32();

//創建輸出文件(ZIP格式的文件)

ZipOutputStream zos = new ZipOutputStream(File.Create(address));

zos.SetLevel(6);

//遍歷所有的文件

foreach (string name in filenames)

{

FileStream fs = File.OpenRead(name);

byte[] buffer = new byte[fs.Length];

//讀取文件

fs.Read(buffer, 0, Convert.ToInt32(fs.Length));

//獲取文件的文件名稱和後綴名

string file = Path.GetFileName(name);

//輸出文件的名稱

ZipEntry entry = new ZipEntry(file);

crc.Reset();

crc.Update(buffer);

entry.Crc = crc.Value;

zos.PutNextEntry(entry);

zos.Write(buffer, 0, Convert.ToInt32(fs.Length));

fs.Close();

}

zos.Finish();

zos.Close();

} C#讀取壓縮文件(將壓縮文件轉換為二進制)

private void GetZipToByte(){

string path = @"C:\Documents and Settings\Administrator\桌面\文件.rar";

FileStream fs = new FileStream(path, FileMode.Open);

bytes = new byte[fs.Length];

int count = Convert.ToInt32(fs.Length);

fs.Read(bytes, 0, count);

}

C#將二進制轉換為壓縮文件

private void GetByteToZip()

{

string path = @"F:\dom.rar";//壓縮文件的地址

File.WriteAllBytes(path, bytes);

}

  • 上一篇:王健林:從中國“首富”到中國“首負”,萬達創始人的風雨沈浮錄
  • 下一篇:日本動漫
  • copyright 2024編程學習大全網