diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 463f14eee..c0ebd1c7e 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -99,7 +99,7 @@ set(HEADERS
             file_sys/file.h
             file_sys/file_romfs.h
             file_sys/file_sdmc.h
-            file_sys/directory.h
+            file_sys/directory_backend.h
             file_sys/directory_romfs.h
             file_sys/directory_sdmc.h
             hle/kernel/address_arbiter.h
diff --git a/src/core/file_sys/archive_backend.h b/src/core/file_sys/archive_backend.h
index 0558698f6..49a310383 100644
--- a/src/core/file_sys/archive_backend.h
+++ b/src/core/file_sys/archive_backend.h
@@ -11,7 +11,7 @@
 #include "common/bit_field.h"
 
 #include "core/file_sys/file.h"
-#include "core/file_sys/directory.h"
+#include "core/file_sys/directory_backend.h"
 
 #include "core/mem_map.h"
 #include "core/hle/kernel/kernel.h"
@@ -219,7 +219,7 @@ public:
      * @param path Path relative to the archive
      * @return Opened directory, or nullptr
      */
-    virtual std::unique_ptr<Directory> OpenDirectory(const Path& path) const = 0;
+    virtual std::unique_ptr<DirectoryBackend> OpenDirectory(const Path& path) const = 0;
 
     /**
      * Read data from the archive
diff --git a/src/core/file_sys/archive_romfs.cpp b/src/core/file_sys/archive_romfs.cpp
index 74974c2df..8db7d69c5 100644
--- a/src/core/file_sys/archive_romfs.cpp
+++ b/src/core/file_sys/archive_romfs.cpp
@@ -78,8 +78,8 @@ bool Archive_RomFS::RenameDirectory(const FileSys::Path& src_path, const FileSys
  * @param path Path relative to the archive
  * @return Opened directory, or nullptr
  */
-std::unique_ptr<Directory> Archive_RomFS::OpenDirectory(const Path& path) const {
-    return std::unique_ptr<Directory>(new Directory_RomFS);
+std::unique_ptr<DirectoryBackend> Archive_RomFS::OpenDirectory(const Path& path) const {
+    return std::unique_ptr<DirectoryBackend>(new Directory_RomFS);
 }
 
 /**
diff --git a/src/core/file_sys/archive_romfs.h b/src/core/file_sys/archive_romfs.h
index 91505da49..5a8a6b04d 100644
--- a/src/core/file_sys/archive_romfs.h
+++ b/src/core/file_sys/archive_romfs.h
@@ -74,7 +74,7 @@ public:
      * @param path Path relative to the archive
      * @return Opened directory, or nullptr
      */
-    std::unique_ptr<Directory> OpenDirectory(const Path& path) const override;
+    std::unique_ptr<DirectoryBackend> OpenDirectory(const Path& path) const override;
 
     /**
      * Read data from the archive
diff --git a/src/core/file_sys/archive_sdmc.cpp b/src/core/file_sys/archive_sdmc.cpp
index 9e524b60e..9d26d2285 100644
--- a/src/core/file_sys/archive_sdmc.cpp
+++ b/src/core/file_sys/archive_sdmc.cpp
@@ -97,12 +97,12 @@ bool Archive_SDMC::RenameDirectory(const FileSys::Path& src_path, const FileSys:
  * @param path Path relative to the archive
  * @return Opened directory, or nullptr
  */
-std::unique_ptr<Directory> Archive_SDMC::OpenDirectory(const Path& path) const {
+std::unique_ptr<DirectoryBackend> Archive_SDMC::OpenDirectory(const Path& path) const {
     LOG_DEBUG(Service_FS, "called path=%s", path.DebugStr().c_str());
     Directory_SDMC* directory = new Directory_SDMC(this, path);
     if (!directory->Open())
         return nullptr;
-    return std::unique_ptr<Directory>(directory);
+    return std::unique_ptr<DirectoryBackend>(directory);
 }
 
 /**
diff --git a/src/core/file_sys/archive_sdmc.h b/src/core/file_sys/archive_sdmc.h
index 347f3945e..f4cb96159 100644
--- a/src/core/file_sys/archive_sdmc.h
+++ b/src/core/file_sys/archive_sdmc.h
@@ -78,7 +78,7 @@ public:
      * @param path Path relative to the archive
      * @return Opened directory, or nullptr
      */
-    std::unique_ptr<Directory> OpenDirectory(const Path& path) const override;
+    std::unique_ptr<DirectoryBackend> OpenDirectory(const Path& path) const override;
 
     /**
      * Read data from the archive
diff --git a/src/core/file_sys/directory.h b/src/core/file_sys/directory_backend.h
similarity index 95%
rename from src/core/file_sys/directory.h
rename to src/core/file_sys/directory_backend.h
index 1bb4101d6..188746a6f 100644
--- a/src/core/file_sys/directory.h
+++ b/src/core/file_sys/directory_backend.h
@@ -36,10 +36,10 @@ static_assert(offsetof(Entry, extension) == 0x216, "Wrong offset for extension i
 static_assert(offsetof(Entry, is_archive) == 0x21E, "Wrong offset for is_archive in Entry.");
 static_assert(offsetof(Entry, file_size) == 0x220, "Wrong offset for file_size in Entry.");
 
-class Directory : NonCopyable {
+class DirectoryBackend : NonCopyable {
 public:
-    Directory() { }
-    virtual ~Directory() { }
+    DirectoryBackend() { }
+    virtual ~DirectoryBackend() { }
 
     /**
     * Open the directory
diff --git a/src/core/file_sys/directory_romfs.h b/src/core/file_sys/directory_romfs.h
index e2944099e..b775f014d 100644
--- a/src/core/file_sys/directory_romfs.h
+++ b/src/core/file_sys/directory_romfs.h
@@ -6,7 +6,7 @@
 
 #include "common/common_types.h"
 
-#include "core/file_sys/directory.h"
+#include "core/file_sys/directory_backend.h"
 #include "core/loader/loader.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -14,7 +14,7 @@
 
 namespace FileSys {
 
-class Directory_RomFS final : public Directory {
+class Directory_RomFS final : public DirectoryBackend {
 public:
     Directory_RomFS();
     ~Directory_RomFS() override;
diff --git a/src/core/file_sys/directory_sdmc.h b/src/core/file_sys/directory_sdmc.h
index 4c08b0d61..407a256ef 100644
--- a/src/core/file_sys/directory_sdmc.h
+++ b/src/core/file_sys/directory_sdmc.h
@@ -7,7 +7,7 @@
 #include "common/common_types.h"
 #include "common/file_util.h"
 
-#include "core/file_sys/directory.h"
+#include "core/file_sys/directory_backend.h"
 #include "core/file_sys/archive_sdmc.h"
 #include "core/loader/loader.h"
 
@@ -16,7 +16,7 @@
 
 namespace FileSys {
 
-class Directory_SDMC final : public Directory {
+class Directory_SDMC final : public DirectoryBackend {
 public:
     Directory_SDMC();
     Directory_SDMC(const Archive_SDMC* archive, const Path& path);
diff --git a/src/core/hle/service/fs/archive.cpp b/src/core/hle/service/fs/archive.cpp
index 6ec310a63..9a3725138 100644
--- a/src/core/hle/service/fs/archive.cpp
+++ b/src/core/hle/service/fs/archive.cpp
@@ -10,7 +10,7 @@
 
 #include "core/file_sys/archive_backend.h"
 #include "core/file_sys/archive_sdmc.h"
-#include "core/file_sys/directory.h"
+#include "core/file_sys/directory_backend.h"
 #include "core/hle/service/fs/archive.h"
 #include "core/hle/kernel/session.h"
 #include "core/hle/result.h"
@@ -186,7 +186,7 @@ public:
     std::string GetName() const override { return "Directory: " + path.DebugStr(); }
 
     FileSys::Path path; ///< Path of the directory
-    std::unique_ptr<FileSys::Directory> backend; ///< File backend interface
+    std::unique_ptr<FileSys::DirectoryBackend> backend; ///< File backend interface
 
     ResultVal<bool> SyncRequest() override {
         u32* cmd_buff = Kernel::GetCommandBuffer();