listFiles function
Important: Ensure you have read permission by calling canRead
before calling listFiles
.
Emits a new event for each child document file.
Works with small and large data file sets.
/// Usage:
final myState = <DocumentFile>[];
final onDocumentFile = listFiles(myUri, [DocumentFileColumn.id]);
onDocumentFile.listen((document) {
myState.add(document);
final documentId = document.data?[DocumentFileColumn.id]
print('$documentId was added to state');
});
Implementation
Stream<DocumentFile> listFiles(
Uri uri, {
required List<DocumentFileColumn> columns,
}) {
final args = <String, dynamic>{
'uri': '$uri',
'event': 'listFiles',
'columns': columns.map((e) => '$e').toList(),
};
final onCursorRowResult =
kDocumentFileEventChannel.receiveBroadcastStream(args);
return onCursorRowResult.map((e) => DocumentFile.fromMap(Map.from(e as Map)));
}