file_picker_impl.dart 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. @override
  36. Future<String?> saveFile({
  37. String? dialogTitle,
  38. String? fileName,
  39. String? initialDirectory,
  40. fp.FileType type = fp.FileType.any,
  41. List<String>? allowedExtensions,
  42. bool lockParentWindow = false,
  43. }) {
  44. return fp.FilePicker.platform.saveFile(
  45. dialogTitle: dialogTitle,
  46. fileName: fileName,
  47. initialDirectory: initialDirectory,
  48. type: type,
  49. allowedExtensions: allowedExtensions,
  50. lockParentWindow: lockParentWindow,
  51. );
  52. }
  53. }