Skip to content

Commit 24b468f

Browse files
author
Arpit-Sahu
committed
hideHiddenEntity
1 parent 2960dbc commit 24b468f

File tree

8 files changed

+35
-158
lines changed

8 files changed

+35
-158
lines changed

example/lib/main.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ class HomePage extends StatelessWidget {
3131
},
3232
child: Scaffold(
3333
appBar: AppBar(
34+
actions: [
35+
IconButton(onPressed: (){
36+
// contoller.sortByName();
37+
}, icon: Icon(Icons.sort),)
38+
],
3439
leading: IconButton(
3540
icon: Icon(Icons.arrow_back),
3641
onPressed: (){},
@@ -42,6 +47,7 @@ class HomePage extends StatelessWidget {
4247
child: FileManager(
4348
controller: controller,
4449
tileBuilder: (context, entity) {
50+
// print(entity);
4551
return Card(
4652
child: ListTile(
4753
leading: isFile(entity)

example/test/widget_test.dart

Lines changed: 0 additions & 30 deletions
This file was deleted.

example/web/favicon.png

-917 Bytes
Binary file not shown.

example/web/icons/Icon-192.png

-5.17 KB
Binary file not shown.

example/web/icons/Icon-512.png

-8.06 KB
Binary file not shown.

example/web/index.html

Lines changed: 0 additions & 98 deletions
This file was deleted.

example/web/manifest.json

Lines changed: 0 additions & 23 deletions
This file was deleted.

lib/file_manager.dart

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ import 'dart:io';
44
import 'package:flutter/material.dart';
55
import '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

912
typedef 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);
2427
String 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

Comments
 (0)