﻿
{"id":2864,"date":"2014-07-13T04:14:55","date_gmt":"2014-07-13T04:14:55","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=2864"},"modified":"2014-07-13T04:16:48","modified_gmt":"2014-07-13T04:16:48","slug":"c-dotnetzip-kutuphanesi-ile-dosya-sikistirma","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/c-dotnetzip-kutuphanesi-ile-dosya-sikistirma\/","title":{"rendered":"C# &#8211; DotNetZip K\u00fct\u00fcphanesi \u0130le Dosya S\u0131k\u0131\u015ft\u0131rma"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>\u00d6nceki yaz\u0131lar\u0131mdan olan <a href=\"http:\/\/www.gencayyildiz.com\/blog\/c-system-io-packaging-kutuphanesi-ile-dosya-sikistirma\/\" target=\"_blank\">C# &#8211; System.IO.Packaging K\u00fct\u00fcphanesi \u0130le Dosya S\u0131k\u0131\u015ft\u0131rma<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131mda <em>System.IO.Packaging<\/em> k\u00fct\u00fcphanesiyle dosya s\u0131k\u0131\u015ft\u0131rmay\u0131 incelemi\u015ftik.Yaz\u0131m\u0131z\u0131 incelerseniz e\u011fer, o yaz\u0131m\u0131zla beraber \u00fc\u00e7 farkl\u0131 y\u00f6ntemle dosya s\u0131k\u0131\u015ft\u0131rma i\u015flemlerine de\u011finece\u011fimizi belirtmi\u015ftim.Bu yaz\u0131m\u0131zda ikinci y\u00f6ntemimiz <em>DotNetZip<\/em> k\u00fct\u00fcphanesi ile dosya s\u0131k\u0131\u015ft\u0131rmay\u0131 irdeleyece\u011fiz.<br \/>\n<!--more--><\/p>\n<p>\u00d6ncelikle DotNetZip k\u00fct\u00fcphanesini isterseniz <a href=\"http:\/\/dotnetzip.codeplex.com\/\" target=\"_blank\">http:\/\/dotnetzip.codeplex.com\/<\/a> linkinden, isterseniz de <a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/DotNetZip.rar\">buradan<\/a> .dll dosyas\u0131 olarak indirebilirsiniz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2869\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-1.png\" alt=\"C# DotNetZip ile s\u0131k\u0131\u015ft\u0131rma 1\" width=\"583\" height=\"328\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-1.png 583w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-1-300x168.png 300w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><\/a><\/p>\n<p>Yukar\u0131daki g\u00f6r\u00fcnt\u00fcde g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi indirdi\u011finiz dosyay\u0131 rardan \u00e7\u0131kard\u0131ktan sonra, &#8220;zip-v1.9&#8221; -&gt; &#8220;Debug&#8221; -&gt; &#8220;Ionic.Zip.dll&#8221; kombinasyon dizisindeki .dll dosyas\u0131 i\u015fimizi g\u00f6recektir.<\/p>\n<p>Bu dosyay\u0131 projemize entegre edebilmek i\u00e7in, projemize sa\u011f t\u0131klayarak &#8220;Add&#8221; -&gt; &#8220;Reference&#8221; kombinasyonunu takip ediniz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2870\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-2.png\" alt=\"C# DotNetZip ile s\u0131k\u0131\u015ft\u0131rma 2\" width=\"576\" height=\"385\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-2.png 576w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-2-300x200.png 300w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/a><\/p>\n<p>Kar\u015f\u0131m\u0131za \u00e7\u0131kan ekran a\u015fa\u011f\u0131daki gibi olacakt\u0131r.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2871\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-3.png\" alt=\"C# DotNetZip ile s\u0131k\u0131\u015ft\u0131rma 3\" width=\"694\" height=\"350\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-3.png 694w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-3-300x151.png 300w\" sizes=\"auto, (max-width: 694px) 100vw, 694px\" \/><\/a><br \/>\nBu pencerede &#8220;Browse&#8221; butonuna t\u0131klayarak, yukar\u0131da dizin yolunu belirtti\u011fimiz .dll dosyas\u0131n\u0131 se\u00e7ip &#8220;Add&#8221; dememiz yeterli olacakt\u0131r.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2872\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-4.png\" alt=\"C# DotNetZip ile s\u0131k\u0131\u015ft\u0131rma 4\" width=\"670\" height=\"470\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-4.png 670w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-4-300x210.png 300w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/a><\/p>\n<p>Son olarak &#8220;Reference Manager&#8221; penceresine Check edilmi\u015f bir vaziyette gelen &#8220;Ionic.Zip.dll&#8221; dosyas\u0131n\u0131 g\u00f6receksiniz.&#8221;OK&#8221; butonuna t\u0131klay\u0131p\u00a0&#8220;Ionic.Zip.dll&#8221; dosyas\u0131n\u0131 projenize entegre i\u015flemini sona erdiriniz.<\/p>\n<p>Projemizin Solution g\u00f6r\u00fcnt\u00fcs\u00fc a\u015fa\u011f\u0131daki gibi olacakt\u0131r.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2873\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-5.png\" alt=\"C# DotNetZip ile s\u0131k\u0131\u015ft\u0131rma 5\" width=\"217\" height=\"333\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-5.png 217w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/07\/C-DotNetZip-ile-s\u0131k\u0131\u015ft\u0131rma-5-195x300.png 195w\" sizes=\"auto, (max-width: 217px) 100vw, 217px\" \/><\/a><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi temel dosyam\u0131z\u0131 projemize entegre etmi\u015f olduk.\u015eimdi s\u0131ra geldi kodsal i\u015flem yapmaya.<br \/>\nYukar\u0131larda bahsetti\u011fim  <a href=\"http:\/\/www.gencayyildiz.com\/blog\/c-system-io-packaging-kutuphanesi-ile-dosya-sikistirma\/\" target=\"_blank\">C# &#8211; System.IO.Packaging K\u00fct\u00fcphanesi \u0130le Dosya S\u0131k\u0131\u015ft\u0131rma<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131m\u0131zda &#8220;ArchiveObj&#8221; ve &#8220;ArchiveCreator&#8221; isimli iki adet Base Class tan\u0131mlam\u0131\u015ft\u0131k.Ayn\u0131 \u015fekilde bu Base Class&#8217;lar\u0131 bu tekni\u011fimizde de kullanaca\u011f\u0131z.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public abstract class ArchiveObj\r\n    {\r\n        internal String strPath;\r\n        internal List&lt;String&gt; lError;\r\n        internal List&lt;String&gt; lFiles;\r\n        public String&#x5B;] ErrorList\r\n        {\r\n            get\r\n            {\r\n                return lError.ToArray();\r\n            }\r\n        }\r\n        public ArchiveObj()\r\n        {\r\n            lFiles = new List&lt;string&gt;();\r\n            lError = new List&lt;string&gt;();\r\n        }\r\n        public Boolean AddFile(String strFile)\r\n        {\r\n            lFiles.Add(strFile);\r\n            return true;\r\n        }\r\n        public abstract int SaveArchive();\r\n    }\r\n<\/pre>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\npublic abstract class ArchiveCreator\r\n{\r\n    internal String strPath;\r\n    public abstract ArchiveObj GetArchieve();\r\n}\r\n<\/pre>\n<p>\u015eimdi bu Base Class&#8217;lar\u0131 kullanarak s\u0131k\u0131\u015ft\u0131rma i\u015flemini ger\u00e7ekle\u015ftirecek C# kodlar\u0131m\u0131z\u0131 d\u00f6kelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    class IonicZip : ArchiveObj\r\n    {\r\n        private IonicZip() { }\r\n        public IonicZip(String sPath)\r\n        {\r\n            strPath = sPath;\r\n        }\r\n        public override int SaveArchive()\r\n        {\r\n            ZipFile zip = new ZipFile();\r\n            foreach (String strFile in lFiles)\r\n                zip.AddFile(strFile);\r\n            zip.Save(strPath);\r\n            return 1;\r\n        }\r\n    }\r\n<\/pre>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public class IonicZipCreator : ArchiveCreator\r\n    {\r\n        private IonicZipCreator() { }\r\n        public IonicZipCreator(String sPath)\r\n        {\r\n            strPath = sPath;\r\n        }\r\n        public override ArchiveObj GetArchieve()\r\n        {\r\n            return new IonicZip(strPath);\r\n        }\r\n    }\r\n<\/pre>\n<p>Art\u0131k s\u0131k\u0131\u015ft\u0131rma komutlar\u0131m\u0131z\u0131da d\u00f6kt\u00fckten sonra bu olu\u015fturdu\u011fumuz yap\u0131lar sayesinde basitce s\u0131k\u0131\u015ft\u0131rma i\u015flemlerini halledebiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        private void Form1_Load(object sender, EventArgs e)\r\n        {\r\n            ArchiveCreator ss = new IonicZipCreator(@&quot;D:\\Deneme\\arsiv.zip&quot;);\r\n            ArchiveObj xx = ss.GetArchieve();\r\n            xx.AddFile(@&quot;D:\\Deneme\\a.txt&quot;);\r\n            xx.AddFile(@&quot;D:\\Deneme\\b.PNG&quot;);\r\n            xx.AddFile(@&quot;D:\\Deneme\\c.docx&quot;);\r\n            xx.SaveArchive();\r\n        }\r\n<\/pre>\n<p>Program\u0131 derleyip \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z zaman belirtti\u011finiz dosyalar, belirtilen dizinde istedi\u011finiz isimle s\u0131k\u0131\u015ft\u0131r\u0131larak eklenecektir.<\/p>\n<p>G\u00f6rsel olarak son hali koymaya l\u00fczum g\u00f6rm\u00fcyorum.Bunun ispat\u0131n\u0131 deneyerek yapman\u0131z\u0131 tavsiye ederim, yukar\u0131larda bahsetti\u011fim konuyla alakal\u0131 ilk yaz\u0131da \u00f6rneklendirmek i\u00e7in g\u00f6rsel hali yay\u0131nlam\u0131\u015ft\u0131m.Hi\u00e7 bir fark yok \ud83d\ude42<\/p>\n<p>Faydalanman\u0131z dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>\u00d6nceki yaz\u0131lar\u0131mdan olan C# &#8211; System.IO.Packaging K\u00fct\u00fcphanesi \u0130le Dosya S\u0131k\u0131\u015ft\u0131rma ba\u015fl\u0131kl\u0131 yaz\u0131mda System.IO.Packaging k\u00fct\u00fcphanesiyle dosya s\u0131k\u0131\u015ft\u0131rmay\u0131 incelemi\u015ftik.Yaz\u0131m\u0131z\u0131 incelerseniz e\u011fer, o yaz\u0131m\u0131zla beraber \u00fc\u00e7 farkl\u0131 y\u00f6ntemle dosya s\u0131k\u0131\u015ft\u0131rma i\u015flemlerine de\u011finece\u011fimizi belirtmi\u015ftim.Bu yaz\u0131m\u0131zda ikinci y\u00f6ntemimiz DotNetZip&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,338],"tags":[27,616,631,615],"class_list":["post-2864","post","type-post","status-publish","format-standard","hentry","category-c-sharp-c","category-c-5-0","tag-c","tag-dosya-sikistirma","tag-dotnetzip","tag-system-io-packaging"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/2864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=2864"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/2864\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=2864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=2864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=2864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}