Ionic 3 Cordova File插件copyFile操作报错(错误码13)求助
解决copyFile函数错误码13:input is not a directory的问题
结合你的代码和报错信息,我能快速定位问题的核心,帮你拆解原因和修复方案:
问题根源:参数传递不符合函数预期
大多数移动端/前端文件操作类的copyFile函数(比如常见的Ionic File插件),参数定义是这样的:
copyFile(sourceDirectory, sourceFileName, targetDirectory, targetFileName)
而你的代码里把完整的文件路径(this.path = "file:///storage/emulated/0/TheFolder/thefile.ext")传给了第一个参数sourceDirectory——这个参数的要求是源文件所在的目录路径,不是文件本身的路径。函数会检查你传入的路径是否为目录,结果发现是文件,于是抛出了input is not a directory的错误。
至于错误码13没出现在官方文档里,大概率是因为这是插件内部自定义的、或者底层平台(比如Android)的原生错误码,属于文档没覆盖到的边缘场景。
修复步骤:拆分源目录与文件名
调整参数传递逻辑,把源文件的目录和文件名分开传入:
// 拆分源文件的目录和文件名 const sourceDir = "file:///storage/emulated/0/TheFolder/"; const sourceFileName = "thefile.ext"; // 确保this.newPath是目标目录(你的代码里这部分是对的) this.fileCtrl.copyFile(sourceDir, sourceFileName, this.newPath, "your-new-file-name.ext");
额外注意事项
- 确认
this.newPath对应的目标目录已经存在,如果不存在,部分插件需要先调用createDir方法创建目录再执行复制 - 检查应用是否拥有足够的文件读写权限:Android 10及以上版本可能需要
MANAGE_EXTERNAL_STORAGE权限,或者改用媒体库相关API操作文件
内容的提问来源于stack exchange,提问作者EMRADE
相关产品推荐
相关产品推荐

