diff --git a/core/lib/Drupal/Core/Config/FileStorage.php b/core/lib/Drupal/Core/Config/FileStorage.php
index bf178c5..2ac9cee 100644
--- a/core/lib/Drupal/Core/Config/FileStorage.php
+++ b/core/lib/Drupal/Core/Config/FileStorage.php
@@ -204,11 +204,14 @@ public function listAll($prefix = '') {
       throw new StorageException($this->directory . '/ not found.');
     }
     $extension = '.' . static::getFileExtension();
-    $files = glob($this->directory . '/' . $prefix . '*' . $extension);
-    $clean_name = function ($value) use ($extension) {
-      return basename($value, $extension);
-    };
-    return array_map($clean_name, $files);
+    $files = new \GlobIterator($this->directory . '/' . $prefix . '*' . $extension);
+
+    $names = array();
+    foreach ($files as $file) {
+      $names[] = $file->getBasename($extension);
+    }
+
+    return $names;
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Config/InstallStorage.php b/core/lib/Drupal/Core/Config/InstallStorage.php
index e8442ea..20d20fc 100644
--- a/core/lib/Drupal/Core/Config/InstallStorage.php
+++ b/core/lib/Drupal/Core/Config/InstallStorage.php
@@ -134,10 +134,9 @@ public function getComponentNames($type, array $list) {
     foreach ($list as $name) {
       $directory = $this->getComponentFolder($type, $name);
       if (file_exists($directory)) {
-        $files = glob($directory . '/*' . $extension);
-        foreach ($files as $filename) {
-          $name = basename($filename, $extension);
-          $folders[$name] = $directory;
+        $files = new \GlobIterator($directory . '/*' . $extension);
+        foreach ($files as $file) {
+          $folders[$file->getBasename($extension)] = $directory;
         }
       }
     }
