HarmonyOS 鸿蒙Next request.downloadFile 报错 13400001

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next request.downloadFile 报错 13400001 request.downloadFile 报这个错 同样的沙箱路径 我直接写文件是可以写入的 这个是什么原因?

2 回复

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通常与文件下载相关的权限或配置问题有关。在鸿蒙系统中,应用在进行文件下载操作时,需要确保以下几点:

  1. 权限配置:检查应用是否已经正确配置了下载文件所需的权限,如读写存储权限。在鸿蒙的应用权限管理中,确保相关权限已被授予。

  2. 路径问题:确认下载路径是否有效,以及应用是否有权访问该路径。有时路径不存在或路径权限不足也会导致下载失败。

  3. 文件冲突:检查是否存在同名文件导致冲突,或文件正在被其他应用使用,这可能会阻止新文件的写入。

  4. 系统限制:了解并遵守鸿蒙系统对于文件下载的大小、速度等方面的限制。

  5. 错误处理:增强错误处理能力,确保在下载失败时能获取到更详细的错误信息,有助于问题的定位和解决。

如果在进行上述检查后问题依旧存在,可能是系统或API层面的bug。此时,建议直接联系鸿蒙系统的官方客服以获取更专业的支持。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部