searchStream function

Stream<List<FileSystemEntity>> searchStream(
  1. dynamic path,
  2. String query, {
  3. bool matchCase = false,
  4. dynamic recursive = true,
  5. bool hidden = false,
})

search for files and folder in current directory & sub-directories, and return File or Directory

path: start point query: regex or simple string

Implementation

Stream<List<FileSystemEntity>> searchStream(dynamic path, String query,
    {bool matchCase: false, recursive: true, bool hidden: false}) async* {
  yield* fileStream(path, recursive: recursive)
      .transform(StreamTransformer.fromHandlers(handleData: (data, sink) {
    // Filtering
    data.retainWhere(
        (test) => test.basename().toLowerCase().contains(query.toLowerCase()));
    sink.add(data);
  }));
}