无法将文件复制到本地存储 android flutter
Cannot copy file to local storage android flutter
我正在尝试通过 image_picker 从画廊或相机中挑选图像,并将图像保存在特定位置。当我从相机中选取图像时,我的代码可以完美运行,但是当我在保存时从图库中选取时,它会出现异常。这是我的代码
onPressed: () async {
final XFile? image = await picker.pickImage(source: ImageSource.gallery);
File tempFile = File(image.path);
tempFile = await tempFile.copy('storage/emulated/0/$image.name');
}
以上代码通过异常处理
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: FileSystemException: Cannot copy file to 'storage/emulated/0//6544578463230218846.jpg', path = '/data/user/0/com.example.nysu/cache/image_picker6544578463230218846.jpg' (OS Error: No such file or directory, errno = 2)
首先确保您拥有所需的权限:
例如 Android 你需要:
此外,文件路径似乎有点奇怪,带有额外的“/”,如果不是故意的,您可能需要修复它:
'storage/emulated/0//6544578463230218846.jpg'
像这样:
tempFile = await tempFile.copy('storage/emulated/0$image.name');
我的应用程序的基本流程是,首先我从图库或相机中选择图像,然后我输入用户提供的图像名称,然后我将带有用户提供的名称的图像保存到本地存储。
所以在选择图像和输入名称之间的间隔内,图像选择器的缓存内存丢失了一段时间,因此 (OS 错误:没有这样的文件或目录, errno = 2) 发生。
为了解决这个问题,我在选择图像之前输入名称,并在选择它们之后立即保存图像。它完美运行。
我正在尝试通过 image_picker 从画廊或相机中挑选图像,并将图像保存在特定位置。当我从相机中选取图像时,我的代码可以完美运行,但是当我在保存时从图库中选取时,它会出现异常。这是我的代码
onPressed: () async {
final XFile? image = await picker.pickImage(source: ImageSource.gallery);
File tempFile = File(image.path);
tempFile = await tempFile.copy('storage/emulated/0/$image.name');
}
以上代码通过异常处理
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: FileSystemException: Cannot copy file to 'storage/emulated/0//6544578463230218846.jpg', path = '/data/user/0/com.example.nysu/cache/image_picker6544578463230218846.jpg' (OS Error: No such file or directory, errno = 2)
首先确保您拥有所需的权限: 例如 Android 你需要:
此外,文件路径似乎有点奇怪,带有额外的“/”,如果不是故意的,您可能需要修复它: 'storage/emulated/0//6544578463230218846.jpg'
像这样:
tempFile = await tempFile.copy('storage/emulated/0$image.name');
我的应用程序的基本流程是,首先我从图库或相机中选择图像,然后我输入用户提供的图像名称,然后我将带有用户提供的名称的图像保存到本地存储。
所以在选择图像和输入名称之间的间隔内,图像选择器的缓存内存丢失了一段时间,因此 (OS 错误:没有这样的文件或目录, errno = 2) 发生。
为了解决这个问题,我在选择图像之前输入名称,并在选择它们之后立即保存图像。它完美运行。