首页/新闻资讯/正文详情

微信小程序:文件操作

发布时间:2026/11/4 2:38:16 来源:云帆数科 栏目:资讯中心
微信小程序:文件操作
一、项目简介本案例演示微信小程序FileSystemManager 文件管理器API实现本地用户文件的写文件、复制文件、读文件、获取文件信息。 作业扩展新增删除文件按钮实现删除复制出来的hello_copy.txt文件页面标题与消息区域同步更新。开发环境微信开发者工具 新建项目配置项目名文件操作不使用云服务、不使用模板Skyline 渲染模式。页面布局顶部标题区域textarea文本输入框用于录入待写入文件的文本功能按钮组写文件、复制文件、读文件、文件信息、【扩展】删除文件消息展示 view 区域展示接口执行结果、文件路径、文件内容、文件大小摘要等信息。知识点小程序本地用户文件拥有沙箱隔离机制不同用户、不同小程序 AppID 互相不能访问对方文件保障隐私安全。wx.env.USER_DATA_PATH小程序用户文件根目录模拟器路径前缀http://usr真机前缀wxfile://usr代码使用模板字符串拼接不要硬编码协议头。二、项目目录结构文件操作 ├─ app.json # 全局配置 ├─ app.wxss # 全局公共样式 └─ pages └─ index ├─ index.js # 文件操作业务逻辑 ├─ index.wxml # UI页面结构 └─ index.wxss # 页面局部样式三、完整代码实现1. app.json{ pages: [ pages/index/index ], window: { navigationBarTextStyle: black, navigationStyle: custom }, style: v2, renderer: skyline, rendererOptions: { skyline: { defaultDisplayBlock: true, defaultContentBox: true, tagNameStyleIsolation: legacy, disableABTest: true, sdkVersionBegin: 3.0.0, sdkVersionEnd: 15.255.255 } }, componentFramework: glass‑easel, sitemapLocation: sitemap.json, lazyCodeLoading: requiredComponents }2. pages/index/index.wxmlnavigation-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-view3. pages/index/index.wxsspage { 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; justify‑content: space‑around; margin‑bottom:20rpx; } .msg‑area { width: auto; height: 360rpx; margin‑top: 40rpx; padding: 20rpx; font‑size: 40rpx; background‑color: azure; }4. 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; }5. pages/index/index.js完整含扩展删除文件Page({ data: { title: 文件操作, msg: , writtenText: }, //输入框输入事件 inputText(e) { this.setData({ title: 正在输入文字..., writtenText: e.detail.value }) }, //写文件 writeFile write() { const fs wx.getFileSystemManager() const filePath ${wx.env.USER_DATA_PATH}/hello.txt fs.writeFile({ filePath, data: this.data.writtenText, encoding: utf‑8, success: res { const msg 写入文件成功 filePath this.setData({ title: 写文件, msg }) }, fail: err { console.log(写入文件识别, err); } }) }, //复制文件 copyFile 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 }) }, fail: err { console.log(复制文件失败... err); } }) }, //读取文件 readFile 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 }) }, fail: err { console.log(读取文件失败 err); } }) }, //获取文件信息 getFileInfo大小、md5摘要digest 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 }) }, fail: err { console.log(获取文件信息失败 err); } }) }, //作业扩展删除文件 unlink 删除 hello_copy.txt deleteFile() { const fs wx.getFileSystemManager() const filePath ${wx.env.USER_DATA_PATH}/hello_copy.txt fs.unlink({ filePath, success: res { const msg 删除文件成功 filePath this.setData({ title: 删除文件, msg }) }, fail: err { console.log(删除文件失败, err) this.setData({ msg: 删除文件失败 err.errMsg }) } }) } })四、小程序文件系统核心 API 汇总表格API功能说明wx.getFileSystemManager()获取全局唯一文件系统管理器 fs所有文件操作都由 fs 调用wx.env.USER_DATA_PATH用户本地文件根目录路径模拟器与真机协议前缀不一样使用模板字符串拼接fs.writeFile({filePath,data,encoding})写文件将文本写入本地用户文件fs.copyFile({srcPath,destPath})复制文件源文件→目标文件fs.readFile({filePath,encoding})读文件读取本地文本文件内容success 回调 res.data 拿到文本fs.getFileInfo({filePath})获取文件信息size文件字节大小、digestmd5 摘要fs.unlink({filePath})删除文件作业扩展 API删除指定本地用户文件文件分类代码包文件项目工程里自带的文件只读不能写入修改。本地文件程序运行动态生成分为临时文件、缓存文件、用户文件USER_DATA_PATH用户文件支持自定义文件名。⚠️沙箱隔离每个微信用户、每个小程序 AppID 都拥有独立文件存储区域互相不可访问保障用户隐私。五、开发踩坑总结路径字符串引号错误拼接filePath必须使用反引号模板字符串不要用单引号 。模拟器和真机路径前缀不同 模拟器路径开头http://usr真机wxfile://usr代码不要硬编码前缀直接使用wx.env.USER_DATA_PATH拼接。删除 / 复制 / 读取时报文件不存在需要先执行【写文件】生成hello.txt再复制得到hello_copy.txt没有生成源文件直接调用接口会触发 fail 失败回调。readFile 不设置 encoding 返回二进制 ArrayBuffer 读取文本文件参数encoding:utf‑8必须写否则拿到的不是字符串文本。unlink 只能删除本地用户文件不能删除项目代码包里的静态资源。

相关推荐

分类是科学的基础
分类是科学的基础

摘要:分类不是整理技巧,而是认知与科学的起点。米老师强调“分类是科学的基础”“生与死的差别”,本质上是指:分类决定你看到什么、如何解释、采取什么行动。分类弱和找关联弱往往是同一个瓶颈——缺少可用的类别结构。文章的推理… · 2026/11/4 2:38:16

Zig 系统编程也能如此简单
Zig 系统编程也能如此简单

第 1 章 为什么是 Zig 本章目标:搞清楚 Zig 是什么、解决什么问题、什么时候该用它、什么时候不该用它。我们会跑通第一个程序,并亲眼看见 Zig 的"安全网"如何在运行时抓住一个 C 语言里会静默变成安全漏洞的错误。 从入门到精通的实战之路 基于 Zig 0.17.0(2026-… · 2026/11/4 2:38:16

大型制造集团智能制造人才体系建设:三年人才规划怎么做【HR注意】
大型制造集团智能制造人才体系建设:三年人才规划怎么做【HR注意】

2026智能制造人才体系与战略HR规划指南|倍利福一家拥有8家工厂的制造集团,计划未来三年投入资金推进产线自动化、MES升级、设备数据采集和工业AI应用。 设备采购完成了,系统也陆续上线,但半年后发现:OT团队不懂软件&am… · 2026/11/4 2:37:16

渗透测试工程师成长指南:从基础到实战
渗透测试工程师成长指南:从基础到实战

1. 渗透测试行业的真实挑战作为一名从业多年的网络安全工程师,我见过太多怀揣黑客梦想的年轻人,在接触渗透测试后迅速被现实击垮。这个行业远没有影视作品中那么光鲜亮丽,背后是无数个熬夜研究漏洞的夜晚和持续不断的学习压力。1.1 技术门槛&… · 2026/11/4 3:25:24

PostgreSQL慢SQL排查与优化实战指南
PostgreSQL慢SQL排查与优化实战指南

1. 慢SQL问题排查的必要性数据库性能问题就像汽车发动机的积碳——平时感觉不到,一旦爆发就会让整个系统瘫痪。作为PostgreSQL DBA,我处理过上百个慢SQL案例,其中80%的生产事故都是由于未被及时发现的问题SQL逐渐累积导致的。上周刚处理过一个… · 2026/11/4 3:25:24

多目标跟踪实战:检测、预测与匹配的工程取舍
多目标跟踪实战:检测、预测与匹配的工程取舍

简介:这份资源面向计算机视觉与信号处理方向的学习者,聚焦多目标跟踪(MTT)在MATLAB环境下的实现,适合希望从目标检测、状态估计到数据关联完整走通一遍流程的初中级读者。压缩包共3个文件,以m脚本、avi视频… · 2026/11/4 3:25:24

PostgreSQL慢SQL问题排查与优化实战指南
PostgreSQL慢SQL问题排查与优化实战指南

1. 慢SQL问题排查的必要性上周五凌晨两点,我被一阵急促的电话铃声惊醒。运维同事告诉我生产环境的订单查询接口响应时间从200ms飙升到15秒,用户投诉已经塞满了客服系统。当我连上服务器查看pg_stat_activity视图时,发现有个查询已经运行了8分… · 2026/11/4 3:25:24

Unity等距解谜工程拆解:旋转、路径重算与二次开发实战
Unity等距解谜工程拆解:旋转、路径重算与二次开发实战

简介:这份资源是面向Unity初学者与进阶开发者的《纪念碑谷》风格解谜游戏完整工程,基于Unity 2017.3版本构建,可用于学习2D与3D图形结合、场景搭建、资源管理与C#脚本逻辑等核心开发技能。压缩包共254个文件,约2.61MB,… · 2026/11/4 3:25:24

全屏歌词动画实现指南:Folia内置模式解析与性能调优
全屏歌词动画实现指南:Folia内置模式解析与性能调优

全屏歌词动画这件事,很多人第一反应是"不就是把歌词放大铺满屏幕吗"。真上手做过一轮就知道,同样是全屏,有的方案歌词一放大就糊成一片,有的动效一跑起来帧率直接腰斩,还有的在不同分辨率屏幕上位置全乱。我… · 2026/11/4 3:24:24

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码