scanFolder static method
Implementation
static Future<List<UMediaSource>> scanFolder(String directoryPath, {bool recursive = true, int limit = 20000}) async {
if (kIsWeb) return const <UMediaSource>[];
final Directory directory = Directory(directoryPath);
final List<UMediaSource> result = <UMediaSource>[];
try {
await for (final FileSystemEntity entity in directory.list(recursive: recursive, followLinks: false)) {
if (entity is! File) continue;
final String lower = entity.path.toLowerCase();
final int dot = lower.lastIndexOf(".");
if (dot < 0 || !audioExtensions.contains(lower.substring(dot))) continue;
result.add(UMediaSource.file(entity.path));
if (result.length >= limit) break;
}
} on FileSystemException {
return result;
}
result.sort((UMediaSource a, UMediaSource b) => a.id.compareTo(b.id));
return result;
}