diff --git a/lib/storage/base/settings.dart b/lib/storage/base/settings.dart
index 4b12578..93f5b0f 100644
--- a/lib/storage/base/settings.dart
+++ b/lib/storage/base/settings.dart
@@ -1,6 +1,7 @@
 import 'package:flutter/material.dart';
 import 'package:json_annotation/json_annotation.dart';
 
+import '../file/fileSettings.dart';
 import '../gradeAverages/gradeAveragesSettings.dart';
 import '../talk/talkSettings.dart';
 import '../timetable/timetableSettings.dart';
@@ -19,6 +20,7 @@ class Settings {
   GradeAveragesSettings gradeAveragesSettings;
   TimetableSettings timetableSettings;
   TalkSettings talkSettings;
+  FileSettings fileSettings;
 
   Settings({
     required this.appTheme,
@@ -26,6 +28,7 @@ class Settings {
     required this.gradeAveragesSettings,
     required this.timetableSettings,
     required this.talkSettings,
+    required this.fileSettings,
   });
 
   static String _themeToJson(ThemeMode m) => m.name;
diff --git a/lib/storage/base/settings.g.dart b/lib/storage/base/settings.g.dart
index 6794122..235a0fd 100644
--- a/lib/storage/base/settings.g.dart
+++ b/lib/storage/base/settings.g.dart
@@ -15,6 +15,8 @@ Settings _$SettingsFromJson(Map<String, dynamic> json) => Settings(
           json['timetableSettings'] as Map<String, dynamic>),
       talkSettings:
           TalkSettings.fromJson(json['talkSettings'] as Map<String, dynamic>),
+      fileSettings:
+          FileSettings.fromJson(json['fileSettings'] as Map<String, dynamic>),
     );
 
 Map<String, dynamic> _$SettingsToJson(Settings instance) => <String, dynamic>{
@@ -23,4 +25,5 @@ Map<String, dynamic> _$SettingsToJson(Settings instance) => <String, dynamic>{
       'gradeAveragesSettings': instance.gradeAveragesSettings.toJson(),
       'timetableSettings': instance.timetableSettings.toJson(),
       'talkSettings': instance.talkSettings.toJson(),
+      'fileSettings': instance.fileSettings.toJson(),
     };
diff --git a/lib/storage/base/settingsProvider.dart b/lib/storage/base/settingsProvider.dart
index bedda8f..a1b934a 100644
--- a/lib/storage/base/settingsProvider.dart
+++ b/lib/storage/base/settingsProvider.dart
@@ -1,6 +1,7 @@
 import 'dart:convert';
 import 'dart:developer';
 import 'package:flutter/material.dart';
+import 'package:marianum_mobile/storage/file/fileSettings.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 
 import '../gradeAverages/gradeAveragesSettings.dart';
@@ -60,6 +61,9 @@ class SettingsProvider extends ChangeNotifier {
         sortFavoritesToTop: true,
         sortUnreadToTop: false,
       ),
+      fileSettings: FileSettings(
+        sortFoldersToTop: true,
+      ),
     );
   }
 }
\ No newline at end of file
diff --git a/lib/storage/file/fileSettings.dart b/lib/storage/file/fileSettings.dart
new file mode 100644
index 0000000..a4c6b57
--- /dev/null
+++ b/lib/storage/file/fileSettings.dart
@@ -0,0 +1,13 @@
+import 'package:json_annotation/json_annotation.dart';
+
+part 'fileSettings.g.dart';
+
+@JsonSerializable()
+class FileSettings {
+  bool sortFoldersToTop;
+
+  FileSettings({required this.sortFoldersToTop});
+
+  factory FileSettings.fromJson(Map<String, dynamic> json) => _$FileSettingsFromJson(json);
+  Map<String, dynamic> toJson() => _$FileSettingsToJson(this);
+}
\ No newline at end of file
diff --git a/lib/storage/file/fileSettings.g.dart b/lib/storage/file/fileSettings.g.dart
new file mode 100644
index 0000000..25c5df6
--- /dev/null
+++ b/lib/storage/file/fileSettings.g.dart
@@ -0,0 +1,16 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'fileSettings.dart';
+
+// **************************************************************************
+// JsonSerializableGenerator
+// **************************************************************************
+
+FileSettings _$FileSettingsFromJson(Map<String, dynamic> json) => FileSettings(
+      sortFoldersToTop: json['sortFoldersToTop'] as bool,
+    );
+
+Map<String, dynamic> _$FileSettingsToJson(FileSettings instance) =>
+    <String, dynamic>{
+      'sortFoldersToTop': instance.sortFoldersToTop,
+    };
diff --git a/lib/view/pages/files/files.dart b/lib/view/pages/files/files.dart
index 9654fec..4475b42 100644
--- a/lib/view/pages/files/files.dart
+++ b/lib/view/pages/files/files.dart
@@ -4,6 +4,8 @@ import 'dart:io';
 
 import 'package:flutter/material.dart';
 import 'package:loader_overlay/loader_overlay.dart';
+import 'package:marianum_mobile/storage/base/settingsProvider.dart';
+import 'package:provider/provider.dart';
 
 import '../../../api/marianumcloud/webdav/queries/listFiles/cacheableFile.dart';
 import '../../../api/marianumcloud/webdav/queries/listFiles/listFilesCache.dart';
@@ -93,7 +95,11 @@ class _FilesState extends State<Files> {
 
   @override
   Widget build(BuildContext context) {
-    List<CacheableFile> files = (data?.files.toList() ?? List.empty())..sort(SortOptions.getOption(currentSort).compare);
+    List<CacheableFile> files = (data?.files.toList() ?? List.empty())..sort((a, b) {
+      int directorySort = Provider.of<SettingsProvider>(context).val().fileSettings.sortFoldersToTop ? a.isDirectory ? b.isDirectory ? 0 : 1 : -1 : 0;
+      if(directorySort == 0) return SortOptions.getOption(currentSort).compare(a, b);
+      return directorySort;
+    });
     if(currentSortDirection) files = files.reversed.toList();
 
     return Scaffold(
diff --git a/lib/view/settings/settings.dart b/lib/view/settings/settings.dart
index f107ac1..6325f37 100644
--- a/lib/view/settings/settings.dart
+++ b/lib/view/settings/settings.dart
@@ -119,6 +119,21 @@ class _SettingsState extends State<Settings> {
 
             const Divider(),
 
+            ListTile(
+              leading: const Icon(Icons.drive_folder_upload_outlined),
+              title: const Text("Ordner in Dateien nach oben sortieren"),
+              trailing: Checkbox(
+                value: settings.val().fileSettings.sortFoldersToTop,
+                onChanged: (e) {
+                  setState(() {
+                    settings.val(write: true).fileSettings.sortFoldersToTop = e!;
+                  });
+                },
+              ),
+            ),
+
+            const Divider(),
+
             ListTile(
               leading: const Icon(Icons.live_help_outlined),
               title: const Text("Informationen und Lizenzen"),