listFiles function

Stream<DocumentFile> listFiles(
  1. Uri uri, {
  2. required List<DocumentFileColumn> columns,
})

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');
});

Refer to details.

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)));
}