@@ -67,6 +67,31 @@ Future<List<FileSystemEntity>> _sortEntitysList(
6767 .last
6868 .compareTo (b.path.toLowerCase ().split ('.' ).last));
6969 return [...dirs, ...files];
70+ } else if (sortType == SortBy .size) {
71+ // create list of path and size
72+ Map <String , int > _sizeMap = {};
73+ for (FileSystemEntity e in list) {
74+ _sizeMap[e.path] = (await e.stat ()).size;
75+ }
76+
77+ // making list of only folders.
78+ final dirs = list.where ((element) => element is Directory ).toList ();
79+ // sorting folder list by name.
80+ dirs.sort ((a, b) => a.path.toLowerCase ().compareTo (b.path.toLowerCase ()));
81+
82+ // making list of only flies.
83+ final files = list.where ((element) => element is File ).toList ();
84+
85+ // creating sorted list of [_sizeMapList] by size.
86+ final List <MapEntry <String , int >> _sizeMapList = _sizeMap.entries.toList ();
87+ _sizeMapList.sort ((b, a) => a.value.compareTo (b.value));
88+
89+ // sort [list] according to [_sizeMapList]
90+ files.sort ((a, b) => _sizeMapList
91+ .indexWhere ((element) => element.key == a.path)
92+ .compareTo (
93+ _sizeMapList.indexWhere ((element) => element.key == b.path)));
94+ return [...dirs, ...files];
7095 }
7196 return [];
7297}
@@ -109,9 +134,14 @@ Future<List<Directory>?> getStorageList() async {
109134 }).toList ();
110135 return storages;
111136 } else if (Platform .isLinux) {
112- print ("HEre" );
113- Directory dir = await getApplicationDocumentsDirectory ();
114- return [dir.parent];
137+ final Directory dir = await getApplicationDocumentsDirectory ();
138+
139+ // Gives the home directory.
140+ final Directory home = dir.parent;
141+
142+ // you may provide root directory.
143+ // final Directory root = dir.parent.parent.parent;
144+ return [home];
115145 }
116146 return [];
117147}
0 commit comments