HarmonyOS的fs.openSync不支持创建目录,所以在进行打开文件的时候,需要先创建目录才可以:
/*
**写入文本至文件中
* path: 文件路径
* contentName: 文件名
* content: 文本内容
*/
writeContent(path:string, content:string | ArrayBuffer, contentName: string){
//存储前先删除指定路径下的文件
this.deleteFile(path, contentName)
//以读写和创建的模式打开或创建一个新文件
let savePath = this.cacheDic + '/' + path + '/'
try {
//创建目录
if (fs.accessSync(savePath, fs.AccessModeType.READ_WRITE) == false) {
fs.mkdirSync(savePath, true)
}
let file = fs.openSync(savePath + contentName, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)
//将content写入到打开的文件中
const result = fs.writeSync(file.fd, content)
//关闭文件
fs.closeSync(file)
} catch (error) {
console.log(error)
}
}
/*
* 删除指定目录下的文件
* path: 文件路径 推荐路径名由:用户ID/书本ID/模块ID/目录ID+...各级子ID
* */
deleteFile(path:string, contentName: string){
let delPath = this.cacheDic + '/' + path + '/' + contentName
if(fs.accessSync(delPath)){
//如果存在,则使用fs.unlink函数删除该文件
try {
fs.unlinkSync(delPath)
} catch (error) {
console.log(error)
}
}
}
/*
* 获取文本
* path: 文件路径 推荐路径名由:用户ID/书本ID/模块ID/目录ID+...各级子ID
* */
getContent(path:string, contentName: string): string | undefined {
let content: string|undefined = undefined
let savePath = this.cacheDic + '/' + path + '/' + contentName
if(fs.accessSync(savePath)){
//如果存在,则读取文件
try {
content = fs.readTextSync(savePath)
} catch (error) {
console.log(error)
}
}
return content
}
网友评论