{"id":4770,"date":"2024-03-14T01:55:42","date_gmt":"2024-03-14T01:55:42","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/"},"modified":"2025-07-31T13:07:53","modified_gmt":"2025-07-31T13:07:53","slug":"how-to-compress-all-files-in-a-folder-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/","title":{"rendered":"How to Zip a Folder in Java"},"content":{"rendered":"<p>You can use the ZipOutputStream class in Java to compress all files in a folder. Here is an example code:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> java.io.*;\r\n<span class=\"hljs-keyword\">import<\/span> java.util.zip.ZipEntry;\r\n<span class=\"hljs-keyword\">import<\/span> java.util.zip.ZipOutputStream;\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">ZipFolder<\/span> {\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> {\r\n        <span class=\"hljs-type\">File<\/span> <span class=\"hljs-variable\">folderToZip<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">File<\/span>(<span class=\"hljs-string\">\"path\/to\/folder\"<\/span>);\r\n        <span class=\"hljs-type\">File<\/span> <span class=\"hljs-variable\">zipFile<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">File<\/span>(<span class=\"hljs-string\">\"path\/to\/output.zip\"<\/span>);\r\n\r\n        <span class=\"hljs-keyword\">try<\/span> {\r\n            <span class=\"hljs-type\">FileOutputStream<\/span> <span class=\"hljs-variable\">fos<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">FileOutputStream<\/span>(zipFile);\r\n            <span class=\"hljs-type\">ZipOutputStream<\/span> <span class=\"hljs-variable\">zos<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ZipOutputStream<\/span>(fos);\r\n\r\n            zipFolder(folderToZip, folderToZip.getName(), zos);\r\n\r\n            zos.close();\r\n            fos.close();\r\n        } <span class=\"hljs-keyword\">catch<\/span> (IOException e) {\r\n            e.printStackTrace();\r\n        }\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">zipFolder<\/span><span class=\"hljs-params\">(File folder, String parentFolderName, ZipOutputStream zos)<\/span> <span class=\"hljs-keyword\">throws<\/span> IOException {\r\n        <span class=\"hljs-keyword\">for<\/span> (File file : folder.listFiles()) {\r\n            <span class=\"hljs-keyword\">if<\/span> (file.isDirectory()) {\r\n                zipFolder(file, parentFolderName + <span class=\"hljs-string\">\"\/\"<\/span> + file.getName(), zos);\r\n            } <span class=\"hljs-keyword\">else<\/span> {\r\n                <span class=\"hljs-type\">FileInputStream<\/span> <span class=\"hljs-variable\">fis<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">FileInputStream<\/span>(file);\r\n\r\n                <span class=\"hljs-type\">ZipEntry<\/span> <span class=\"hljs-variable\">zipEntry<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ZipEntry<\/span>(parentFolderName + <span class=\"hljs-string\">\"\/\"<\/span> + file.getName());\r\n                zos.putNextEntry(zipEntry);\r\n\r\n                <span class=\"hljs-type\">byte<\/span>[] buffer = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">byte<\/span>[<span class=\"hljs-number\">1024<\/span>];\r\n                <span class=\"hljs-type\">int<\/span> length;\r\n                <span class=\"hljs-keyword\">while<\/span> ((length = fis.read(buffer)) &gt; <span class=\"hljs-number\">0<\/span>) {\r\n                    zos.write(buffer, <span class=\"hljs-number\">0<\/span>, length);\r\n                }\r\n\r\n                fis.close();\r\n                zos.closeEntry();\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the example above, the first step is to specify the folder path to be compressed and the output zip file path. Then, the zipFolder method recursively traverses all files in the folder and adds them to the ZipOutputStream. Finally, close the stream to complete the compression process.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You can use the ZipOutputStream class in Java to compress all files in a folder. Here is an example code: import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ZipFolder { public static void main(String[] args) { File folderToZip = new File(&#8220;path\/to\/folder&#8221;); File zipFile = new File(&#8220;path\/to\/output.zip&#8221;); try { FileOutputStream fos = new FileOutputStream(zipFile); ZipOutputStream zos [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[1814,4606,180,4605,4607],"class_list":["post-4770","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-file-compression","tag-java-compression","tag-java-programming","tag-java-zip-folder","tag-zipoutputstream"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Zip a Folder in Java - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn to compress files in Java folders using ZipOutputStream. Step-by-step code example included!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Zip a Folder in Java\" \/>\n<meta property=\"og:description\" content=\"Learn to compress files in Java folders using ZipOutputStream. Step-by-step code example included!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T01:55:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T13:07:53+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"How to Zip a Folder in Java\",\"datePublished\":\"2024-03-14T01:55:42+00:00\",\"dateModified\":\"2025-07-31T13:07:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/\"},\"wordCount\":75,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"File compression\",\"Java compression\",\"Java programming\",\"Java zip folder\",\"ZipOutputStream\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/\",\"name\":\"How to Zip a Folder in Java - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T01:55:42+00:00\",\"dateModified\":\"2025-07-31T13:07:53+00:00\",\"description\":\"Learn to compress files in Java folders using ZipOutputStream. Step-by-step code example included!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Zip a Folder in Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Zip a Folder in Java - Blog - Silicon Cloud","description":"Learn to compress files in Java folders using ZipOutputStream. Step-by-step code example included!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How to Zip a Folder in Java","og_description":"Learn to compress files in Java folders using ZipOutputStream. Step-by-step code example included!","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T01:55:42+00:00","article_modified_time":"2025-07-31T13:07:53+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"How to Zip a Folder in Java","datePublished":"2024-03-14T01:55:42+00:00","dateModified":"2025-07-31T13:07:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/"},"wordCount":75,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["File compression","Java compression","Java programming","Java zip folder","ZipOutputStream"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/","name":"How to Zip a Folder in Java - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T01:55:42+00:00","dateModified":"2025-07-31T13:07:53+00:00","description":"Learn to compress files in Java folders using ZipOutputStream. Step-by-step code example included!","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-all-files-in-a-folder-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Zip a Folder in Java"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=4770"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4770\/revisions"}],"predecessor-version":[{"id":149476,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4770\/revisions\/149476"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=4770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=4770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=4770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}