小程序系统文件管理器 FileSystemManager
要操作/读取本地文件,首先需要创建文件或文件夹,然后再对文件进行读写操作;
首先创建文件
FileSystemManager.writeFile
可直接创建文件并写入内容
定义文件路径,此路径在读写操作时保持一致
const path = `${wx.env.USER_DATA_PATH}/hello.txt`
const fs = wx.getFileSystemManager()
fs.writeFile({
filePath: path,
data: 'some text or arrayBuffer',
encoding: 'utf8',
success(res) {
console.log(res)
},
fail(res) {
console.error(res)
}
})
// 同步接口
try {
const res = fs.writeFileSync(
path,
'some text or arrayBuffer',
'utf8'
)
console.log(res)
} catch(e) {
console.error(e)
}
读取文件
FileSystemManager.readFile
读取刚刚创建的文件
fs.readFile({
filePath: path,
encoding: 'utf8',
position: 0,
success(res) {
console.log(res.data)
},
fail(res) {
console.error(res)
}
})
// 同步接口
try {
const res = fs.readFileSync(path, 'utf8', 0)
console.log(res)
} catch(e) {
console.error(e)
}
在原有文件追加内容
FileSystemManager.appendFile
fs.appendFile({
filePath: path,
data: 'some text',
encoding: 'utf8',
success(res) {
console.log(res)
},
fail(res) {
console.error(res)
}
})
// 同步接口
try {
fs.appendFileSync(path, 'some text', 'utf8')
} catch(e) {
console.error(e)
}
修改文件内容
小程序提供的接口没有类似 updateFile 的接口操作去修改原有文件的数据,所以要修改文件内容可以使用一个中转文件来最终保存修改后的内容
比如先创建一个文件 a.txt
对 a.txt 文件写入内容之后,再创建一个 b.txt 文件,读取出 a 文件的内容进行修改,然后再写入 b 文件,最终达到修改的操作