c 解壓以及壓縮

2021-10-14 00:20:08 字數 3997 閱讀 5329

解壓壓縮工具類

**如下(示例):

using system;

using system.io;

using system.diagnostics;

using microsoft.win32;

using icsharpcode.sharpziplib.checksums;

using icsharpcode.sharpziplib.zip;

///壓縮、解壓縮類

namespace dotnet.utilities

///

/// 壓縮

///

/// 壓縮後的檔名(包含物理路徑)

/// 待壓縮的資料夾(包含物理路徑)

public

static

void

packfiles

(string filename,

string directory)

catch

(exception)}

///

/// 解壓縮

///

/// 待解壓檔名(包含物理路徑)

/// 解壓到哪個目錄中(包含物理路徑)

public

static

bool

unpackfiles

(string file,

string dir)

zipinputstream s =

newzipinputstream

(file.

openread

(file));

zipentry theentry;

while

((theentry = s.

getnextentry()

)!=null)if

(filename != string.empty)

else

} streamwriter.

close()

;}} s.

close()

;return

true;}

catch

(exception)}

}public

class

classzip

}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 =

newzipoutputstream

(file.

create

(zipedfile));

s.setlevel

(level)

; res =

zipfiledictory

(foldertozip, s,"")

; s.

finish()

; s.

close()

;return res;

}///

/// 壓縮檔案

///

/// 要進行壓縮的檔名

/// 壓縮後生成的壓縮檔案名

private

static

bool

zipfile

(string filetozip,

string zipedfile,

int level)

filestream zipfile =

null

;zipoutputstream zipstream =

null

;zipentry zipentry =

null

;bool res =

true

;try

catch

finally

if(zipstream !=

null)if

(zipfile !=

null

) gc.

collect()

; gc.

collect(1

);}return res;

}#endregion

///

/// 壓縮

///

/// 待壓縮的檔案目錄

/// 生成的目標檔案

/// 6

public

static

bool

zip(

string filetozip,

string zipedfile,

int level)

else

if(file.

exists

(filetozip)

)else

}///

/// 解壓

///

/// 待解壓的檔案

/// 解壓目標存放目錄

public

static

void

unzip

(string filetoupzip,

string zipedfolder)if(

!directory.

exists

(zipedfolder)

)zipinputstream s =

null

;zipentry theentry =

null

;string filename;

filestream streamwriter =

null

;try

streamwriter = file.

create

(filename)

;int size =

2048

;byte

data =

newbyte

[2048];

while

(true

)else}}

}}finally

if(theentry !=

null)if

(s !=

null

) gc.

collect()

; gc.

collect(1

);}}

}public

class

ziphelper

catch

(exception ex)

}///

/// 解壓縮

///

/// 要解壓的檔名

/// 要解壓的檔案路徑

public

void

dezip

(string zipname,

string zippath)

catch

(exception ex)}}

}

c rar解壓大小 C 壓縮 解壓縮

1 2 壓縮檔案 fnamearry 為客戶端傳回來的檔案列表 檔名陣列,壓縮包的名稱strzipname3 4 檔名陣列 5 壓縮包的名稱 6 public void zipfile string fnamearry stringstrzipname 7 19 20 u.finish 結束壓縮 2...

檔案壓縮 解壓縮 歸檔以及鏈結

gdt group description table 塊組描述表 tune2fs l 顯示超級塊資訊 dumpe2fs 輸出 ext檔案系統資訊 du disk usage s summary,顯示某指定路徑下所有檔案的大小之和 h human readale 換成容易 讀的單位 df disk ...

C 壓縮和解壓縮

話不多說,直接上 最後有重要說明!哦對了,用的是icsharpcode.sharpziplib.zip 這個東西 壓縮 先宣告個全域性變數吧 附件打包的變數 zipoutputstream zos null 下面就是壓縮的 了 protected void btnfile click object ...