file_picker_impl.dart 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import 'package:appflowy/util/file_picker/file_picker_service.dart';
  2. import 'package:file_picker/file_picker.dart' as fp;
  3. class FilePicker implements FilePickerService {
  4. @override
  5. Future<String?> getDirectoryPath({String? title}) {
  6. return fp.FilePicker.platform.getDirectoryPath();
  7. }
  8. @override
  9. Future<FilePickerResult?> pickFiles({
  10. String? dialogTitle,
  11. String? initialDirectory,
  12. fp.FileType type = fp.FileType.any,
  13. List<String>? allowedExtensions,
  14. Function(fp.FilePickerStatus p1)? onFileLoading,
  15. bool allowCompression = true,
  16. bool allowMultiple = false,
  17. bool withData = false,
  18. bool withReadStream = false,
  19. bool lockParentWindow = false,
  20. }) async {
  21. final result = await fp.FilePicker.platform.pickFiles(
  22. dialogTitle: dialogTitle,
  23. initialDirectory: initialDirectory,
  24. type: type,
  25. allowedExtensions: allowedExtensions,
  26. onFileLoading: onFileLoading,
  27. allowCompression: allowCompression,
  28. allowMultiple: allowMultiple,
  29. withData: withData,
  30. withReadStream: withReadStream,
  31. lockParentWindow: lockParentWindow,
  32. );
  33. return FilePickerResult(result?.files ?? []);
  34. }
  35. }