日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于ZipOupputStream添加压缩包常见问题

發(fā)布時間:2024/7/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于ZipOupputStream添加压缩包常见问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

其實園子壓縮解壓縮的方法很多,ZipOupputStream這個類的說明很多,我這邊也是從網上找的代碼,但是我在壓縮的時候遇到了常見的兩個問題,第一個就是壓縮的時候讀取壓縮包報該壓縮包已經在另一個進程打開的bug,這個問題解決方法是不能把創(chuàng)建的壓縮包和被壓縮的文件放在同一目錄下,因為當前目錄已經被打開了。

第二個問題壓縮文件夾無法把多個文件壓縮,遍歷無法壓縮多個文件,原因是ZipOutputStream這個類庫中的CRC32這個類,本人表示查來查去也沒找個那個大神的園子里解釋過這個類,總之把與這個類相關的代碼注釋掉就可以多個文件壓縮了,希望有懂得大神可以給解釋下。

public class ZipFloClass
{
public void ZipFile(string strFile, string strZip)
{
if(File.Exists(strZip))
{
File.Delete(strZip);
}
if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar)
strFile += Path.DirectorySeparatorChar;
FileStream fs = new FileStream(strZip, FileMode.Create);
ZipOutputStream s = new ZipOutputStream(fs);
s.SetLevel(6); // 0 - store only to 9 - means best compression
zip(strFile, s, strFile);
s.Finish();
s.Close();

}

private void zip(string strFile, ZipOutputStream s, string staticFile)
{
if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar) strFile += Path.DirectorySeparatorChar;
Crc32 crc = new Crc32();
string[] filenames = Directory.GetFileSystemEntries(strFile);
foreach (string file in filenames)
{

if (Directory.Exists(file))
{
zip(file, s, staticFile);
}

else // 否則直接壓縮文件
{
//打開壓縮文件
FileStream fs = File.OpenRead(file);

byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
string tempfile = file.Substring(staticFile.LastIndexOf("\\") + 1);
ZipEntry entry = new ZipEntry(tempfile);

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);

}
}
}

}

轉載于:https://www.cnblogs.com/renzhitian/p/7903119.html

總結

以上是生活随笔為你收集整理的关于ZipOupputStream添加压缩包常见问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。