diff --git a/core/lib/Drupal/Core/Archiver/Zip.php b/core/lib/Drupal/Core/Archiver/Zip.php
index fd769c1..e42163a 100644
--- a/core/lib/Drupal/Core/Archiver/Zip.php
+++ b/core/lib/Drupal/Core/Archiver/Zip.php
@@ -23,12 +23,15 @@ class Zip implements ArchiverInterface {
    *   The full system path of the archive to manipulate. Only local files
    *   are supported. If the file does not yet exist, it will be created if
    *   appropriate.
+   * @param int $flags
+   *   (optional) The mode to use to open the archive. Defaults to create the
+   *   archive if it does not exist.
    *
    * @throws \Drupal\Core\Archiver\ArchiverException
    */
-  public function __construct($file_path) {
+  public function __construct($file_path, $flags = \ZipArchive::CREATE) {
     $this->zip = new \ZipArchive();
-    if ($this->zip->open($file_path) !== TRUE) {
+    if ($this->zip->open($file_path, $flags) !== TRUE) {
       throw new ArchiverException(t('Cannot open %file_path', ['%file_path' => $file_path]));
     }
   }
