uniapp 文件读写
uniapp 文件读写操作指南
文件系统基础
uniapp的文件系统基于HTML5的File API和微信小程序等平台的本地文件系统能力。不同平台的文件读写方式略有差异,需注意平台兼容性。主要涉及临时文件、本地文件和沙盒文件系统。
选择文件
使用uni.chooseFile方法从设备选择文件:
uni.chooseFile({
count: 1,
success: (res) => {
const tempFilePaths = res.tempFilePaths;
console.log('文件路径:', tempFilePaths[0]);
}
});
参数count控制选择文件数量,返回的tempFilePaths为临时文件路径数组。
读取文件内容
通过uni.getFileSystemManager().readFile读取文件:

const fs = uni.getFileSystemManager();
fs.readFile({
filePath: tempFilePath,
encoding: 'utf8',
success: (res) => {
console.log('文件内容:', res.data);
}
});
设置encoding参数可指定编码格式(如base64、utf8)。
写入文件
使用uni.getFileSystemManager().writeFile写入文件:
fs.writeFile({
filePath: `${wx.env.USER_DATA_PATH}/example.txt`,
data: 'Hello uniapp',
encoding: 'utf8',
success: () => {
console.log('写入成功');
}
});
wx.env.USER_DATA_PATH为微信小程序的用户目录路径,其他平台需使用对应路径常量。

文件操作
-
删除文件:
fs.unlink({ filePath: filePath, success: () => { console.log('删除成功'); } }); -
文件信息:
fs.stat({ path: filePath, success: (res) => { console.log('文件大小:', res.size); } });
注意事项
- iOS和Android平台的文件系统权限不同,需在manifest.json中配置所需权限。
- 临时文件路径在应用关闭后可能失效,重要文件应保存到持久化目录。
- H5端受浏览器安全限制,某些操作需用户主动触发。
跨平台兼容方案
推荐使用uni.saveFile保存持久化文件:
uni.saveFile({
tempFilePath: tempFilePath,
success: (res) => {
console.log('保存路径:', res.savedFilePath);
}
});
该方法会自动处理各平台的路径转换问题。






