首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振-不能将文件复制到新路径

颤振-不能将文件复制到新路径
EN

Stack Overflow用户
提问于 2018-09-28 16:47:10
回答 2查看 22.8K关注 0票数 7

我想将图像复制到应用程序目录中,但是我总是收到以下错误:

错误:flutter/shell/ path /shell.OS(181) Dart错误:未处理的异常: E/flutter ( 4159):FileSystemException:不能将文件复制到'/storage/emulated/0/Android/data/com.vendetta.recipe/files/Pictures/a6fd32a9-60b2-4cff-8f10-2ffc2933bf751208556873045090039.jpg‘路径(OS错误:是一个目录,errno = 21) E/flutter ( 4159):#0 _File.copy。(dart:io/file_INPIN.DAT:340:9)E/file( 4159):#1 _RootZone.runUnary (省道:异步/zone.dart:1379:54)E/颤振( 4159):2 _FutureListener.handleValue (dart:dart/future_INPRIN.DAT:129:18)E/颤振( 4159):#3 Future._propagateToListeners.handleValueCallback (dart:dart/future_INPRIN.DAT:642:45)E/颤振( 4159):#4 Future._propagateToListeners (dart:dart/flutter_INST.DAT:671:32) E/flutter ( 4159):#5 Future._completeWithValue (dart:dart/flutter_INST.DAT:486:5) E/flutter ( 4159):#6 Future._asyncComplete。(dart:异步/未来_INST.DAT:516:7)E/颤振( 4159):#7 _microtaskLoop (dart:异步/调度_microtask.DART:41:21)E/颤振( 4159):#8 _startMicrotaskLoop (dart:异步/调度_微任务.dart:50:5)

我想复制这个图像,以确保,当我保存它,用户不是删除一个重要的文件。我想把这个文件存储在数据库里。

这是我复制图像的代码,这是用采摘机拍摄的

代码语言:javascript
复制
Directory directory = await getApplicationDocumentsDirectory();
String path = directory.path;
File newImage = await _image.copy('$path');

我希望有人能解决我的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-28 17:13:24

path是目录/data/user/0/com.vendetta.recipe/app_flutter。尝试向其中添加一个/filename.jpg

代码语言:javascript
复制
File newImage = await _image.copy('$path/filename.jpg');
票数 19
EN

Stack Overflow用户

发布于 2020-08-19 07:35:37

请试试这个,然后你的问题就解决了。

我还向您提供了动态复制任何扩展名的文件。

按照这些步骤-

1.首先添加此导入

代码语言:javascript
复制
import 'package:path/path.dart' as path;

2.获取扩展名文件名

代码语言:javascript
复制
 var basNameWithExtension = path.basename(sourceFile.path);

3.然后将分机号传递给

代码语言:javascript
复制
var file =  await moveFile(sourceFile,newPath+"/"+basNameWithExtension);

4.然后编写此方法

代码语言:javascript
复制
Future<File> moveFile(File sourceFile, String newPath) async {
    try {
      /// prefer using rename as it is probably faster
      /// if same directory path
      return await sourceFile.rename(newPath);
    } catch (e) {
      /// if rename fails, copy the source file 
      final newFile = await sourceFile.copy(newPath);
      return newFile;
    }
  }
  1. 然后你就会得到预期的结果
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52559623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档