HarmonyOS下载文件到沙盒时报错,13400001 : file operation error

示例:

let context = getContext(this) as common.UIAbilityContext; 
this.downloadFile(url, `${context.filesDir}/123.zip`) 
downloadFile(url: string, saveFile: string): Promise<void> { 
  const promise = request.downloadFile(context, { url: url, filePath: saveFile }) 
  const newPromise = new Promise<void>((resolve: Function, reject: Function) => { 
    promise.then((downloadTask: request.DownloadTask) => { 
      downloadTask.on('complete', () => { 
        resolve() 
      }) 
      downloadTask.on('fail', (err: number) => { 
        console.error('err:' + err) 
        reject(new NetError(NetErrType.LogicErr, err, 'downloadTask error')) 
      }) 
      downloadTask.on('progress', (receivedSize: number, total: number) => { 
        console.error(`progress:${receivedSize},total:${total}`) 
      }) 
    }).catch((e: Error) => { 
      console.error('downloadFile err:', e.message) 
      reject(e) 
    }) 
  }) 
  return newPromise 
}
HarmonyOS
2024-09-06 10:56:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

13400001错误码应该是调用downloadFile接口时,文件权限不足或操作失败。除了网络权限,还需要添加读写权限,在代码所在的模块里的src/main/modules.json里加上requestPermissions对应权限,如果代码写在module里就需要在module里的modules.json里加:

“requestPermissions”: [ 
{ 
  “name”: “ohos.permission.INTERNET”, 
  “name”: “ohos.permission.WRITE_MEDIA”, 
  “name”: “ohos.permission.READ_NEDIA” 
} 
]

请排查是否是权限配置是否正确。

同时可以用如下代码查看下当前文件权限。

let filePath = pathDir + "/test.txt"; 
fs.stat(filePath).then((stat) => { 
  console.info("get file info succeed, the size of file is " + stat.size); 
}).catch((err) => { 
  console.info("get file info failed with error message: " + err.message + ", error code: " + err.code); 
});

${context.filesDir}的路径是/data/storage/el2/base/haps/entry/files/,而你的路径多了globalTime,所以需要先创建新的目录再下载。示例代码如下:

@State filePath: string = `${this.context.filesDir}/globalTime`; 
fs.mkdir(this.filePath).then(() => { 
  console.info("mkdir succeed"); 
}).catch((err: BusinessError) => { 
  console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code); 
});
分享
微博
QQ
微信
回复
2024-09-06 15:43:30
相关问题
HarmonyOS下载文件报错
104浏览 • 1回复 待解决
http请求中下载文件报错2300023
1744浏览 • 1回复 待解决
如何查看HarmonyOS下载文件
82浏览 • 1回复 待解决
HarmonyOS下载文件失败返回
87浏览 • 1回复 待解决
HarmonyOS 下载报错Download File Path Valid
149浏览 • 1回复 待解决
如何使用接口下载文件
1808浏览 • 1回复 待解决
是否支持iframe下载文件
532浏览 • 1回复 待解决
request下载文件不能覆盖现有文件
1601浏览 • 1回复 待解决
使用request下载文件的方式
118浏览 • 1回复 待解决
下载文件打印乱码如何修改
152浏览 • 1回复 待解决
有谁知道如何访问路径
210浏览 • 1回复 待解决
如何用断点续传的方式下载文件
769浏览 • 1回复 待解决
使用ohpm发布tgz文件时报错
447浏览 • 1回复 待解决
JS UI要怎么下载文件有知道的吗?
4456浏览 • 1回复 待解决