using system;
using system.collections.generic;
using system.text;
using icsharpcode.sharpziplib.zip;
using system.io;
using icsharpcode.sharpziplib.checksums;
namespace help
if (!directory.exists(zipedfolder))
zipinputstream sinput = new zipinputstream(file.openread(filetoupzip));
trystring newdir = path.getdirectoryname(filename);
if (!directory.exists(newdir))
filestream streamwriter = file.create(filename);
trystreamwriter.write(data, 0, size);}}
finally}}
}finally
}/// /// 遞迴壓縮資料夾方法
///
/// 需要壓縮的檔案位置
/// 壓縮輸出流物件
/// 父資料夾名稱
private static bool zipfiledictory(string foldertozip, zipoutputstream s, string parentfoldername)
}catch
finally
if (entry != null)
gc.collect();
gc.collect(1);
}folders = directory.getdirectories(foldertozip);
foreach (string folder in folders)
}return res;
}/// /// 壓縮目錄
///
/// 待壓縮的資料夾,全路徑格式
/// 壓縮後的檔名,全路徑格式
///
private static bool zipfiledictory(string foldertozip, string zipedfile, int level)
zipoutputstream s = new zipoutputstream(file.create(zipedfile));
s.setlevel(level);
res = zipfiledictory(foldertozip, s, "");
s.finish();
s.close();
return res;
}/// /// 壓縮檔案
///
/// 要進行壓縮的檔名
/// 壓縮後生成的壓縮檔案名
/// 壓縮檔案操作是否成功,成功返回true,不成功返回false
private static bool zipfile(string filetozip, string zipedfile, int level)
//filestream fs = null;
filestream zipfile = null;
zipoutputstream zipstream = null;
zipentry zipentry = null;
bool res = true;
trycatch
finally
if (zipstream != null)
if (zipfile != null)
gc.collect();
gc.collect(1);
}return res;
}/// /// 壓縮檔案 和 資料夾
///
/// 待壓縮的檔案或資料夾,全路徑格式
/// 壓縮後生成的壓縮檔案名,全路徑格式
/// 層級數量
/// 返回壓縮結果,成功返回true,失敗返回false
public static bool zip(string filetozip, string zipedfile, int level)
else if (file.exists(filetozip))
else
}/// /// 壓縮多個檔案,用(1,2,4個引數即可)解壓多個檔案
///
/// 壓縮檔案名稱
/// 多個檔案的陣列,全路徑格式
/// 解壓路徑,空字元是不設定解壓路徑
/// 解壓的密碼,空字元是不要密碼
/// 返回解壓檔案數量
public static int zipfiles(string destfolder, string srcfiles, string foldername, string password)
foreach (string file in srcfiles)
streamwriter = file.openread(file);
byte buffer = new byte[streamwriter.length];
streamwriter.read(buffer, 0, buffer.length);
streamwriter.close();
crc32.reset();
crc32.update(buffer);
zipentry zipentry = new zipentry(path.combine(foldername, path.getfilename(file)));
zipentry.datetime = datetime.now;
zipentry.size = buffer.length;
zipentry.crc = crc32.value;
zipstream.putnextentry(zipentry);
zipstream.write(buffer, 0, buffer.length);
count++;}}
finally
if (zipstream != null)
}return count;}}
}
壓縮解壓縮
壓縮 壓縮後的檔名 包含物理路徑 待壓縮的資料夾 包含物理路徑 public static void packfiles string filename,string directory catch exception 解壓縮 待解壓檔名 包含物理路徑 解壓到哪個目錄中 包含物理路徑 public ...
壓縮 解壓縮
linux使用最廣泛的壓縮格式位gz,使用gzip命令進行壓縮和解壓縮 1 gzip,gunzip,壓縮 解壓縮檔案,compress or expand files gzip acdfhkllnnrtvv19 s suffix name gunzip acfhkllnnrtvv s suffix ...
Linux 壓縮 解壓縮
1.以.a為副檔名的檔案 tar xv file.a 2.以.z為副檔名的檔案 uncompress file.z 3.以.gz為副檔名的檔案 gunzip file.gz 4.以.bz2為副檔名的檔案 bunzip2 file.bz2 5.以.tar.z為副檔名的檔案 tar xvzf file....