listFiles function
Future<List<File> >
listFiles(
- String path, {
- List<
String> ? extensions, - dynamic followsLinks = false,
- dynamic excludeHidden = false,
- FlutterFileUtilsSorting? sortedBy,
- bool reversed = false,
This function returns files' paths list only from specific location.
- You may specify the types of the files you want to get by supplying the optional
extensions
. - sortedBy: FlutterFileUtilsSorting
- bool reversed: in case parameter sortedBy is used
Implementation
Future<List<File>> listFiles(String path,
{List<String>? extensions,
followsLinks = false,
excludeHidden = false,
FlutterFileUtilsSorting? sortedBy,
bool reversed: false}) async {
List<File> files = [];
try {
List contents =
Directory(path).listSync(followLinks: followsLinks, recursive: false);
if (extensions != null) {
// Future<List<String>> extensionsPatterns =
// RegexTools.makeExtensionPatterns(extensions);
for (var fileOrDir in contents) {
if (fileOrDir is File) {
String file = pathlib.normalize(fileOrDir.path);
for (var extension in extensions) {
if (pathlib.extension(file).replaceFirst(".", "") ==
extension.replaceFirst('.', '')) {
if (excludeHidden) {
if (file.startsWith('.'))
files.add(File(pathlib.normalize(fileOrDir.absolute.path)));
} else {
files.add(File(pathlib.normalize(fileOrDir.absolute.path)));
}
}
}
}
}
} else {
for (var fileOrDir in contents) {
if (fileOrDir is File) {
files.add(File(pathlib.normalize(fileOrDir.absolute.path)));
}
}
}
} catch (error) {
throw FileManagerError(error.toString());
}
if (files != null) {
return sortBy(files, sortedBy, reversed: reversed) as FutureOr<List<File>>;
}
return files;
}