listFiles static method
Implementation
static List<List<dynamic>> listFiles(String parentPath,
{bool doOnlyFolder = false,
List<String>? allowedExtensions,
bool doHidden = false,
bool order = true}) {
List<List<dynamic>> pathAndNameList = [];
try {
var list = Directory(parentPath).listSync();
for (var fse in list) {
String path = fse.path;
String filename = basename(path);
if (filename.startsWith(".")) {
continue;
}
String parentname = dirname(path);
var isDirectory = FileSystemEntity.isDirectorySync(path);
if (doOnlyFolder && !isDirectory) {
continue;
}
if (isDirectory) {
pathAndNameList.add(<dynamic>[parentname, filename, isDirectory]);
} else if (allowedExtensions != null) {
for (var ext in allowedExtensions) {
if (filename.endsWith(ext)) {
pathAndNameList.add(<dynamic>[parentname, filename, isDirectory]);
break;
}
}
} else {
pathAndNameList.add(<dynamic>[parentname, filename, isDirectory]);
}
}
} catch (e) {
print(e);
}
pathAndNameList.sort((o1, o2) {
String n1 = o1[1];
String n2 = o2[1];
return n1.compareTo(n2);
});
return pathAndNameList;
}