#鸿蒙学习大百科#调用fs.write报错如下,如何解决?

调用fs.write报错Failed to write data. Code is 13900008, message is Bad file descriptor。


HarmonyOS
2024-10-14 10:44:52
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
朝花惜拾丶

可能原因:

(1)此文件描述符已关闭。

(2)读写权限不匹配。

处理步骤:

(1)确认此文件描述符是否已关闭。

(2)确认此文件读写权限是否匹配。

let applicationContext = this.context.getApplicationContext();
let cacheDir = applicationContext.cacheDir;
let filePath = cacheDir + "/test1.txt"
fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE).then((file: fs.File) => {
 //fs.OpenMode.READ_WRITE 注意这句不能丢
   write("aaa",file)
})

async function write(data: string, file: fs.File): Promise<void> {
  fs.write(file.fd, data).then((writeLen: number) => {
    console.info('write data length is: ' + writeLen)
  }).catch((err: BusinessError) => {
    console.error(`Failed to write data. Code is ${err.code}, message is ${err.message}`);
  })
}
分享
微博
QQ
微信
回复
2024-10-14 14:58:10
相关问题
希望fs.write支持utf-8之外的编码格式
786浏览 • 1回复 待解决