getFileList method
Implementation
Future<List<File>> getFileList() async {
final List<File> listFile = [];
final String? dir;
if (Platform.isWindows) {
dir = await getLocalSupportDir();
} else if (Platform.isAndroid) {
final esdTemp = await getExternalStorageDirectory();
if (esdTemp != null) {
dir = esdTemp.path;
} else {
final tdTemp = await getTemporaryDirectory();
dir = tdTemp.path;
}
} else {
dir = await getLocalDocumentDir();
}
if (dir == null) {
return [];
}
final list = Directory(dir).listSync(followLinks: false);
final filterLogList = list.filter((fileSystemEntity) {
if (fileSystemEntity.path.contains(".log") || fileSystemEntity.path.contains(".dmp")) {
final fileDateTime = FileStat.statSync(fileSystemEntity.path).changed;
final differDays = DateTime.now().difference(fileDateTime).inDays;
if (differDays > 3) {
return false;
}
return true;
} else {
return false;
}
}).toList();
filterLogList.sort((a, b) {
final timeA = FileStat.statSync(a.path).changed.millisecondsSinceEpoch;
final timeB = FileStat.statSync(b.path).changed.millisecondsSinceEpoch;
return timeA.compareTo(timeB);
});
final iterable = filterLogList.map((fileSystemEntity) => File(fileSystemEntity.path));
listFile.addAll(iterable);
return listFile;
}