openFiles method

  1. @override
Future<List<XFile>> openFiles({
  1. List<XTypeGroup>? acceptedTypeGroups,
  2. String? initialDirectory,
  3. String? confirmButtonText,
})

Opens a file dialog for loading files and returns a list of file paths.

Returns an empty list if the user cancels the operation.

Implementation

@override
Future<List<XFile>> openFiles({
  List<XTypeGroup>? acceptedTypeGroups,
  String? initialDirectory,
  String? confirmButtonText,
}) async {
  final List<Map<String, Object>> serializedTypeGroups =
      _serializeTypeGroups(acceptedTypeGroups);
  final List<String>? pathList = await _channel.invokeListMethod<String>(
    _openFileMethod,
    <String, dynamic>{
      if (serializedTypeGroups.isNotEmpty)
        _acceptedTypeGroupsKey: serializedTypeGroups,
      _initialDirectoryKey: initialDirectory,
      _confirmButtonTextKey: confirmButtonText,
      _multipleKey: true,
    },
  );
  return pathList?.map((String path) => XFile(path)).toList() ?? <XFile>[];
}