使用.net內置的壓縮解壓縮程式,解壓程式集嵌入的ZIP資源文件 ...
今天做安裝打包程式研究,之前同事將很多零散的文件發佈成一個安裝文件夾給用戶,這樣體驗不好,我希望將所有文件打包成一個.net程式,運行此程式的時候自解壓然後執行後續的安裝步驟。
解決過程:
1,將所有零散文件使用WinRAR工具,打包成一個ZIP格式文件,比如 SetupRes.zip
2,新建一個控制台或者WinForms程式項目作為“打包項目”;
3,將SetupRes.zip文件放到打包程式項目的根目錄下麵,選擇此文件,屬性-》嵌入的資源;
4,添加如下代碼:
class Program { static void Main(string[] args) { //解壓嵌入式資源示例 string currNamespace = "ConsoleApp1"; string fileName = "SetupRes.zip"; string resourceName = string.Format("{0}.{1}", currNamespace, fileName); Stream so = Assembly.GetEntryAssembly().GetManifestResourceStream(resourceName); if (so != null) { WriteStreamFile(fileName, so); System.IO.Compression.ZipFile.ExtractToDirectory(fileName, ".\\"); Console.WriteLine("文件解壓成功!"); } Console.Read(); } private static void WriteStreamFile(string fileName, Stream stream) { FileStream fs = File.OpenWrite(fileName); int bytesRead = 0; byte[] buffer = new byte[65536]; while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0) { fs.Write(buffer, 0, bytesRead); } stream.Close(); fs.Close(); } }
5,編譯,運行,發現運行目錄解壓出來了ZIP文件和解壓後的目錄。
以後做.NET程式的安裝包,就方便了!