diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt
index ab7c770fb..805434399 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt
@@ -67,6 +67,7 @@ class DirectoryAdapter(val activity: SimpleActivity, val dirs: MutableList<Direc
                 R.id.cab_hide -> toggleFoldersVisibility(true)
                 R.id.cab_unhide -> toggleFoldersVisibility(false)
                 R.id.cab_copy_move -> displayCopyDialog()
+                R.id.cab_select_all -> selectAll()
                 R.id.cab_delete -> askConfirmDelete()
                 else -> return false
             }
@@ -203,6 +204,17 @@ class DirectoryAdapter(val activity: SimpleActivity, val dirs: MutableList<Direc
         })
     }
 
+    fun selectAll() {
+        val cnt = dirs.size
+        for (i in 0..cnt - 1) {
+            markedItems.add(i)
+            multiSelector.setSelected(i, 0, true)
+            notifyItemChanged(i)
+        }
+        actMode?.title = cnt.toString()
+        actMode?.invalidate()
+    }
+
     private fun askConfirmDelete() {
         ConfirmationDialog(activity) {
             actMode?.finish()
diff --git a/app/src/main/res/menu/cab_directories.xml b/app/src/main/res/menu/cab_directories.xml
index e588741b4..9005a67b3 100644
--- a/app/src/main/res/menu/cab_directories.xml
+++ b/app/src/main/res/menu/cab_directories.xml
@@ -36,6 +36,11 @@
         android:icon="@mipmap/copy"
         android:title="@string/copy_move"
         app:showAsAction="ifRoom"/>
+    <item
+        android:id="@+id/cab_select_all"
+        android:icon="@mipmap/select_all"
+        android:title="@string/select_all"
+        app:showAsAction="ifRoom"/>
     <item
         android:id="@+id/cab_delete"
         android:icon="@mipmap/delete"