-
-
Notifications
You must be signed in to change notification settings - Fork 36
Closed
Labels
enhancementNew feature or requestNew feature or requestquestionFurther information is requestedFurther information is requested
Description
How would you use this plugin to write to a file in a folder which access was granted through SAF?
I tried to use the File class and writeAsString from dart:io but I was not able to obtain a proper path through the Uri with toFilePath().
final Uri uri = widget.partialFile.metadata!.uri!;
final file = File(uri.toFilePath());
causes
E/flutter (18993): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: Unsupported operation: Cannot extract a file path from a content URI
E/flutter (18993): #0 _Uri.toFilePath (dart:core/uri.dart:2825:7)
E/flutter (18993): #1 _FolderFileCardState.build.<anonymous closure> (package:shared_storage_example/screens/folder_files/folder_file_card.dart:182:39)
E/flutter (18993): #2 _FolderFileCardState.build.<anonymous closure> (package:shared_storage_example/screens/folder_files/folder_file_card.dart:180:22)
E/flutter (18993): #3 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:1005:21)
E/flutter (18993): #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:198:24)
E/flutter (18993): #5 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:613:11)
E/flutter (18993): #6 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:298:5)
E/flutter (18993): #7 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:269:7)
E/flutter (18993): #8 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:157:27)
E/flutter (18993): #9 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:449:20)
E/flutter (18993): #10 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:425:22)
E/flutter (18993): #11 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:329:11)
E/flutter (18993): #12 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:380:7)
E/flutter (18993): #13 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:344:5)
E/flutter (18993): #14 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:302:7)
E/flutter (18993): #15 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:285:7)
E/flutter (18993): #16 _rootRunUnary (dart:async/zone.dart:1442:13)
E/flutter (18993): #17 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
E/flutter (18993): #18 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
E/flutter (18993): #19 _invoke1 (dart:ui/hooks.dart:170:10)
E/flutter (18993): #20 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:331:7)
E/flutter (18993): #21 _dispatchPointerDataPacket (dart:ui/hooks.dart:94:31)
And once while testing toFilePath() did not cause an error. Opening the file did however.
E/flutter (18993): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: FileSystemException: Cannot open file, path = '/tree/primary%3ADocuments/document/primary%3ADocuments%2FSample%20File.txt' (OS Error: No such file or directory, errno = 2)
E/flutter (18993): #0 _File.open.<anonymous closure> (dart:io/file_impl.dart:356:9)
E/flutter (18993): #1 _rootRunUnary (dart:async/zone.dart:1434:47)
E/flutter (18993): #2 _CustomZone.runUnary (dart:async/zone.dart:1335:19)
E/flutter (18993): <asynchronous suspension>
E/flutter (18993):
It would be great to extend the plugin example with this functionality.
alexcmgit
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestquestionFurther information is requestedFurther information is requested