該控制項是使用csharp寫的,因此可以直接在dotnet環境中引用,不需要註冊。
利用 sharpziplib方便地壓縮和解壓縮檔案
最新版本的sharpziplib(0.84)增加了很多新的功能,其中包括增加了fastzip類,這讓我們可以非常方便地把乙個目錄壓縮成乙個壓縮包,經測試可以很好地支援檔案中包含中文以及空格的情況。
壓縮:
//////建立zip物件
//////
檔名.
///將要壓縮的目錄.
public
static
void zipfile(string filename, string
directory)
catch
(exception)
}
解壓縮:
//////解壓縮.
//////
檔案.///
解壓成功返回true,否則false
public
static
bool unpackfiles(string file, string
dir)
else
}streamwriter.close();}}
s.close();
return
true
; }
catch
(exception)
}
以下是sharpziplib的另一種方法,其中方法全:
//////壓縮和解壓檔案
///public
class
zipclass
filestream streamtozip = new
filestream(filetozip, filemode.open, fileaccess.read);
filestream zipfile =file.create(zipedfile);
zipoutputstream zipstream = new
zipoutputstream(zipfile);
zipentry zipentry = new
zipentry(filetozip);
zipstream.putnextentry(zipentry);
zipstream.setlevel(compressionlevel);
byte buffer = new
byte
[blocksize];
int size = streamtozip.read(buffer, 0
, buffer.length);
zipstream.write(buffer,
0, size);
try }
catch
(exception ex)
zipstream.finish();
zipstream.close();
streamtozip.close();
gc.collect();
}//////
壓縮目錄(包括子目錄及所有檔案)
/// ///
要壓縮的根目錄
///儲存路徑
///壓縮程度,範圍0-9,數值越大,壓縮程式越高
public
void zipfilefromdirectory(string rootpath, string destinationpath, int
compresslevel)
*///
string rootmark = rootpath.substring(0, rootpath.lastindexof("\\") + 1);
//得到當前路徑的位置,以備壓縮時將所壓縮內容轉變成相對路徑。
string rootmark = rootpath + "
\\";//
得到當前路徑的位置,以備壓縮時將所壓縮內容轉變成相對路徑。
crc32 crc = new
crc32();
zipoutputstream outputstream = new
zipoutputstream(file.create(destinationpath));
outputstream.setlevel(compresslevel);
//0 - store only to 9 - means best compression
foreach (string file in
files)
this
.files.clear();
foreach (string emptypath in
paths)
this
.paths.clear();
outputstream.finish();
outputstream.close();
gc.collect();
}//////
取得目錄下所有檔案及資料夾,分別存入files及paths
/// ///
根目錄 private
void getalldirectories(string
rootpath)
string files =directory.getfiles(rootpath);
foreach (string file in
files)
if (subpaths.length == files.length && files.length == 0)//
如果是空目錄
}//////
解壓縮檔案(壓縮檔案中含有子目錄)
/// ///
待解壓縮的檔案路徑
///解壓縮到指定目錄
///解壓後的檔案列表
public list unzip(string zipfilepath, string
unzippath)
zipinputstream s = new
zipinputstream(file.openread(zipfilepath));
zipentry theentry;
while ((theentry = s.getnextentry()) != null
)
if (filename !=string.empty)
else
}streamwriter.close();}}
s.close();
gc.collect();
return
unzipfiles;
}}
檔案壓縮打包
1.gzip 1 gzip gzip 檔案 生成.gz檔案 2 gzip 6 預設級別 3 gzip d 壓縮檔案 解壓縮 4 gunzip 壓縮檔案 解壓縮 5 zcat 壓縮檔案 檢視壓縮檔案內容 2.bzip2 1 bzip2 檔案 生成.bz2檔案 2 bzip2 9 預設級別 3 bzip...
檔案壓縮與打包
檔案壓縮原理 目前計算機都是使用所謂的byte來計量的,而事實上最小的計量單位應該是bit,而 byte 8bit,而對於數字 byte也就是乙個bit,相當於浪費了7個bit,因此可以壓縮。linux常見的壓縮命令 壓縮檔案的拓展名一般是 tar gz tgz等 gzip最常見的壓縮命令 壓縮檔案...
檔案打包及壓縮
檔案打包及壓縮 demo 複製未打包的檔案到遠端主機 root vmware du sh etc 39m etc root vmware rsync va etc study 172.25.202.20 tmp 將 etc下的所有檔案.root vmware rsync va etc study 1...