@@ -4,7 +4,10 @@ import 'dart:io';
44import 'package:flutter/material.dart' ;
55import 'package:path_provider/path_provider.dart' ;
66
7- // enum SortBy { nameA_Z, nameZ_A, creationDateN_O, dateO_N, size }
7+ enum SortBy {
8+ name,
9+ date,
10+ }
811
912typedef TileBuilder = Widget Function (
1013 BuildContext context,
@@ -22,7 +25,7 @@ bool isDirectory(FileSystemEntity entity) {
2225/// Get the basename of Directory or File by providing FileSystemEntity entity.
2326/// ie: controller.dirName(dir);
2427String basename (FileSystemEntity entity, [bool showFileExtension = true ]) {
25- return (! showFileExtension && (entity is File ))
28+ return (showFileExtension && (entity is File ))
2629 ? entity.path.split ('/' ).last.split ('.' ).first
2730 : entity.path.split ('/' ).last;
2831}
@@ -99,12 +102,16 @@ class FileManager extends StatefulWidget {
99102 final FileManegerController controller;
100103 final TileBuilder tileBuilder;
101104
105+ /// Hide the hidden file and folder.
106+ final bool hideHiddenEntity;
107+
102108 FileManager ({
103109 this .loadingScreen,
104110 this .physics,
105111 this .shrinkWrap = false ,
106112 required this .controller,
107113 required this .tileBuilder,
114+ this .hideHiddenEntity = true ,
108115 });
109116
110117 @override
@@ -151,13 +158,28 @@ class _FileManagerState extends State<FileManager> {
151158 future: Directory (pathSnapshot).list (recursive: false ).toList (),
152159 builder: (context, snapshot) {
153160 if (snapshot.hasData) {
154- final List <FileSystemEntity > entitys = snapshot.data! ;
161+ List <FileSystemEntity > entitys = snapshot.data! ;
162+ entitys.sort ((a, b) =>
163+ a.path.toLowerCase ().compareTo (b.path.toLowerCase ()));
164+
165+ if (widget.hideHiddenEntity) {
166+ entitys = entitys.where ((element) {
167+ if (basename (element) == "" ||
168+ basename (element).startsWith ('.' )) {
169+ return false ;
170+ } else {
171+ print (basename (element));
172+ return true ;
173+ }
174+ }).toList ();
175+ }
176+
155177 return ListView .builder (
156178 physics: widget.physics,
157179 shrinkWrap: widget.shrinkWrap,
158180 itemCount: entitys.length,
159181 itemBuilder: (context, index) {
160- return tileWidget (context, entitys[index]);
182+ return widget. tileBuilder (context, entitys[index]);
161183 },
162184 );
163185 } else if (snapshot.hasError) {
@@ -170,9 +192,9 @@ class _FileManagerState extends State<FileManager> {
170192 },
171193 );
172194
173- Widget tileWidget (BuildContext context, FileSystemEntity entity) {
174- return widget.tileBuilder (context, entity);
175- }
195+ // Widget tileWidget(BuildContext context, FileSystemEntity entity) {
196+ // return widget.tileBuilder(context, entity);
197+ // }
176198
177199 Container errorPage (String error) {
178200 return Container (
0 commit comments