HarmonyOS 鸿蒙Next request.downloadFile 报错 13400001
HarmonyOS 鸿蒙Next request.downloadFile 报错 13400001 request.downloadFile 报这个错 同样的沙箱路径 我直接写文件是可以写入的 这个是什么原因?
13400001 是指文件操作异常 ,参考地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/errorcode-request-V5#section13400001-%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E5%BC%82%E5%B8%B8
需要添加网络权限:ohos.permission.INTERNET
在调用request.downloadFile方法时,需确保提供的filePath参数是一个完整的文件路径,所有父级路径都已创建,以避免下载失败。 沙箱文件目录创建请参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#fsmkdir11
可以参考以下demo:
import common from '@ohos.app.ability.common';
import request from '@ohos.request';
import { BusinessError } from '@ohos.base';
import { fileIo as fs } from '@kit.CoreFileKit'; // 获取应用文件路径
import { webview } from '@kit.ArkWeb';
let context = this as common.UIAbilityContext;
let filesDir = context.filesDir;
@Entry
@Component
export struct Index {
@State message: string = 'Hello World';
@State picUrl: string =
'https://developer.huawei.com/allianceCmsResource/resource/HUAWEI_Developer_VUE/images/bannerpc12.jpg';
private webviewController: WebviewController = new webview.WebviewController();
build() {
Row() {
Scroll() {
Column() {
Button('创建路径').onClick(() => {
let dirPath = filesDir + "/testDir1/testDir2/testDir3";
fs.mkdir(dirPath, true).then(() => {
console.info("mkdir succeed");
}).catch((err: BusinessError) => {
console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code);
});
})
Button('下载').onClick(() => {
try {
//下载文件
request.downloadFile(context,
{ url: this.picUrl, filePath: filesDir + "/testDir1/testDir2/testDir3" + '/ceshi.png' })
.then((downloadTask: request.DownloadTask) => {
let failCallback = (err: number) => {
console.error(`Failed to download the task. Code: ${err}`);
};
downloadTask.on('fail',
failCallback);
//开启回调
downloadTask.on('complete', () => {
console.info('downloadTask1 complete====');
})
downloadTask.off('fail');
}).catch((err: BusinessError) => {
console.error(`Invoke downloadTask failed-----, code is ${err.code}, message is ${err.message}`);
});
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(`Invoke downloadTask downloadFile failed====, code is ${err.code}, message is ${err.message}`);
}
}).width('100%')
}
}.height('100%')
}
}
}
更多关于HarmonyOS 鸿蒙Next request.downloadFile 报错 13400001的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对帖子标题中提到的HarmonyOS(鸿蒙)系统中Next request.downloadFile
报错13400001的问题,这里提供可能的解决方案:
报错13400001通常与文件下载相关的权限或配置问题有关。在鸿蒙系统中,应用在进行文件下载操作时,需要确保以下几点:
-
权限配置:检查应用是否已经正确配置了下载文件所需的权限,如读写存储权限。在鸿蒙的应用权限管理中,确保相关权限已被授予。
-
路径问题:确认下载路径是否有效,以及应用是否有权访问该路径。有时路径不存在或路径权限不足也会导致下载失败。
-
文件冲突:检查是否存在同名文件导致冲突,或文件正在被其他应用使用,这可能会阻止新文件的写入。
-
系统限制:了解并遵守鸿蒙系统对于文件下载的大小、速度等方面的限制。
-
错误处理:增强错误处理能力,确保在下载失败时能获取到更详细的错误信息,有助于问题的定位和解决。
如果在进行上述检查后问题依旧存在,可能是系统或API层面的bug。此时,建议直接联系鸿蒙系统的官方客服以获取更专业的支持。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,