微信小程序 文件操作

发布时间:2026/11/6 6:37:24
微信小程序 文件操作 前言本次案例5.7学习小程序本地文件操作。小程序提供FileSystemManager文件管理器支持读写、复制、获取文件信息本次作业额外扩展实现删除文件功能。项目基于skyline渲染模式体验小程序沙盒隔离的本地用户文件存储机制。项目目录├─ app.json ├─ app.wxss └─ pages └─ index ├─ index.wxml ├─ index.wxss └─ index.jsapp.json关键配置开启skyline渲染适配新版组件能力。{ pages: [pages/index/index], window: { navigationBarTextStyle: black, navigationStyle: custom }, style: v2, renderer: skyline }页面布局wxml界面由四部分组成标题、textarea文本输入框、功能按钮组、消息展示区域。navigation-bar title文件操作 back{{false}} colorblack background#FFF/navigation-bar scroll-view classscrollarea scroll-y typelist view classbox view classtitle{{title}}/view textarea placeholder请录入写入文件的内容 bind:inputinputText / view classbtn-layout button typeprimary sizemini bind:tapwrite写文件/button button typeprimary sizemini bind:tapcopy复制文件/button button typeprimary sizemini bind:tapread读文件/button button typeprimary sizemini bind:tapgetFileInfo文件信息/button /view !--作业扩展删除文件按钮-- view classbtn-layout button typeprimary sizemini bind:tapdeleteFile删除文件/button /view view classmsg-area{{msg}}/view /view /scroll-viewwxss设置样式输入框浅黄色消息区浅蓝色方便区分。/*app.wxss*/ .box { margin: 20rpx; padding: 20rpx; border: 2rpx solid purple; } .title { font-size: 40rpx; font-weight: bolder; text-align: center; margin-bottom: 30rpx; color: red; } /*index.wxss*/ page { height: 100vh; display: flex; flex-direction: column; } .scrollarea { flex: 1; overflow-y: hidden; } textarea { width: auto; margin-bottom: 40rpx; padding: 20rpx; font-size: 40rpx; background-color: lightgoldenrodyellow; } .btn-layout { display: flex; margin-bottom:20rpx; } .msg-area { width: auto; height: 360rpx; margin-top: 40rpx; padding: 20rpx; font-size: 40rpx; background-color: azure; }JS核心逻辑讲解获取文件管理器const fs wx.getFileSystemManager()wx.getFileSystemManager()获取全局唯一文件管理器所有文件操作都由fs对象调用。重要环境变量 wx.env.USER_DATA_PATHconst filePath ${wx.env.USER_DATA_PATH}/hello.txtwx.env.USER_DATA_PATH代表小程序用户沙盒目录模拟器路径前缀http://usr真机前缀wxfile://usr不要硬编码写死路径用模板字符串拼接路径注意是反引号 不要用单引号双引号。1、inputText监听文本输入textarea输入时触发修改页面标题保存输入文本到data。inputText(e) { this.setData({ title: 正在输入文字..., writedText: e.detail.value }) }2、writeFile写文件fs.writeFile()把textarea的字符串写入沙盒内hello.txt。write() { const fs wx.getFileSystemManager() const filePath ${wx.env.USER_DATA_PATH}/hello.txt fs.writeFile({ filePath, data: this.data.writedText, encoding: utf-8, success: res { const msg 写入文件成功: filePath this.setData({title:写文件,msg}) }, fail:errconsole.log(err) }) }###3、copyFile复制文件fs.copyFile(srcPath,destPath)把hello.txt复制一份生成hello_copy.txt。copy() { const fs wx.getFileSystemManager() const srcPath ${wx.env.USER_DATA_PATH}/hello.txt const destPath ${wx.env.USER_DATA_PATH}/hello_copy.txt fs.copyFile({ srcPath, destPath, success: res { const msg 复制文件成功: destPath this.setData({title:复制文件,msg}) } }) }###4、readFile读取文件 读取复制后的hello_copy.txtencoding:utf‑8把二进制转成字符串。read() { const fs wx.getFileSystemManager() const filePath ${wx.env.USER_DATA_PATH}/hello_copy.txt fs.readFile({ filePath, encoding: utf-8, success: res { const msg 读取文件成功: res.data this.setData({title:读文件,msg}) } }) }###5、getFileInfo获取文件信息fs.getFileInfo()可以拿到文件size大小、digest md5摘要哈希值。getFileInfo() { const fs wx.getFileSystemManager() const filePath ${wx.env.USER_DATA_PATH}/hello_copy.txt fs.getFileInfo({ filePath, success: res { const msg file size: ${res.size}, file digest: ${res.digest} this.setData({title:获取文件信息,msg}) } }) }✨作业扩展删除文件 fs.unlinkdeleteFile() { const fs wx.getFileSystemManager() const delPath ${wx.env.USER_DATA_PATH}/hello_copy.txt fs.unlink({ filePath: delPath, success: res { const msg 删除文件成功: delPath this.setData({title:删除文件,msg}) }, fail:err{ this.setData({msg:删除文件失败文件可能不存在}) } }) }小程序文件分类总结代码包文件项目目录打包上传的静态资源。本地临时文件用完即弃小程序重启会被回收。本地缓存文件不能自定义文件名。本地用户文件本案例使用USER_DATA_PATH目录自由读写、自定义文件名有存储上限沙盒隔离适合保存业务生成文件。总结通过这个案例学会了小程序文件管理器的增、删、改、查基础用法。文件系统可以用来保存用户生成的文本、下载保存图片做离线缓存功能。需要注意异步回调、沙盒路径、文件操作执行顺序。完整代码可以直接复制运行适合课程作业练习。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询