codecamp

微信小程序API 文件·文件管理器

FileSystemManager

基础库 1.9.9 开始支持,低版本需做兼容处理

文件管理器


方法:

FileSystemManager.access(Object object)

判断文件/目录是否存在

参数

Object object

属性 类型 默认值 必填 说明
path string 要判断是否存在的文件/目录路径 (本地路径)
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail no such file or directory ${path} 文件/目录不存在



FileSystemManager.accessSync(string path)

FileSystemManager.access 的同步版本

参数

string path

要判断是否存在的文件/目录路径 (本地路径)

错误

错误码 错误信息 说明
fail no such file or directory ${path} 文件/目录不存在


FileSystemManager.appendFile(Object object)

基础库 2.1.0 开始支持,低版本需做兼容处理

在文件结尾追加内容

参数

Object object

属性 类型 默认值 必填 说明
filePath string 要追加内容的文件路径 (本地路径)
data string/ArrayBuffer 要追加的文本或二进制数据
encoding string utf8 指定写入文件的字符编码
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.encoding 的合法值

说明 最低版本
ascii
base64
binary
hex
ucs2 以小端序读取
ucs-2 以小端序读取
utf16le 以小端序读取
utf-16le 以小端序读取
utf-8
utf8
latin1

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail no such file or directory, open ${filePath} 指定的 filePath 文件不存在
fail illegal operation on a directory, open "${filePath}" 指定的 filePath 是一个已经存在的目录
fail permission denied, open ${dirPath} 指定的 filePath 路径没有写权限
fail sdcard not mounted 指定的 filePath 是一个已经存在的目录


FileSystemManager.appendFileSync(string filePath, string|ArrayBuffer data, string encoding)

基础库 2.1.0 开始支持,低版本需做兼容处理

FileSystemManager.appendFile 的同步版本

参数

string filePath

要追加内容的文件路径 (本地路径)

string|ArrayBuffer data

要追加的文本或二进制数据

string encoding

指定写入文件的字符编码

encoding 的合法值

说明 最低版本
ascii
base64
binary
hex
ucs2 以小端序读取
ucs-2 以小端序读取
utf16le 以小端序读取
utf-16le 以小端序读取
utf-8
utf8
latin1

错误

错误码 错误信息 说明
fail no such file or directory, open ${filePath} 指定的 filePath 文件不存在
fail illegal operation on a directory, open "${filePath}" 指定的 filePath 是一个已经存在的目录
fail permission denied, open ${dirPath} 指定的 filePath 路径没有写权限
fail sdcard not mounted 指定的 filePath 是一个已经存在的目录


FileSystemManager.copyFile(Object object)

复制文件

参数

Object object

属性 类型 默认值 必填 说明
srcPath string 源文件路径,支持本地路径
destPath string 目标文件路径,支持本地路径
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail permission denied, copyFile ${srcPath} -> ${destPath} 指定目标文件路径没有写权限
fail no such file or directory, copyFile ${srcPath} -> ${destPath} 源文件不存在,或目标文件路径的上层目录不存在
fail the maximum size of the file storage limit is exceeded 存储空间不足


FileSystemManager.copyFileSync(string srcPath, string destPath)

FileSystemManager.copyFile 的同步版本

参数

string srcPath

源文件路径,支持本地路径

string destPath

目标文件路径,支持本地路径

错误

错误码 错误信息 说明
fail permission denied, copyFile ${srcPath} -> ${destPath} 指定目标文件路径没有写权限
fail no such file or directory, copyFile ${srcPath} -> ${destPath} 源文件不存在,或目标文件路径的上层目录不存在
fail the maximum size of the file storage limit is exceeded 存储空间不足


FileSystemManager.getFileInfo(Object object)

获取该小程序下的 本地临时文件 或 本地缓存文件 信息

参数

Object object

属性 类型 默认值 必填 说明
filePath string 要读取的文件路径 (本地路径)
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
size number 文件大小,以字节为单位

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail file not exist 指定的 filePath 找不到文件


FileSystemManager.getSavedFileList(Object object)

获取该小程序下已保存的本地缓存文件列表

参数

Object object

属性 类型 默认值 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
fileList Array.<Object> 文件数组

res.fileList 的结构

属性 类型 说明
filePath string 文件路径 (本地路径)
size number 本地文件大小,以字节为单位
createTime number 文件保存时的时间戳,从1970/01/01 08:00:00 到当前时间的秒数


FileSystemManager.mkdir(Object object)

创建目录

参数

Object object

属性 类型 默认值 必填 说明 最低版本
dirPath string 创建的目录路径 (本地路径)
recursive boolean false 是否在递归创建该目录的上级目录后再创建该目录。如果对应的上级目录已经存在,则不创建该上级目录。如 dirPath 为 a/b/c/d 且 recursive 为 true,将创建 a 目录,再在 a 目录下创建 b 目录,以此类推直至创建 a/b/c 目录下的 d 目录。 2.3.0
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail no such file or directory ${dirPath} 上级目录不存在
fail permission denied, open ${dirPath} 指定的 filePath 路径没有写权限
fail file already exists ${dirPath} 有同名文件或目录


FileSystemManager.mkdirSync(string dirPath, boolean recursive)

FileSystemManager.mkdir 的同步版本

参数

string dirPath

创建的目录路径 (本地路径)

boolean recursive

基础库 2.3.0 开始支持,低版本需做兼容处理

是否在递归创建该目录的上级目录后再创建该目录。如果对应的上级目录已经存在,则不创建该上级目录。如 dirPath 为 a/b/c/d 且 recursive 为 true,将创建 a 目录,再在 a 目录下创建 b 目录,以此类推直至创建 a/b/c 目录下的 d 目录。

错误

错误码 错误信息 说明
fail no such file or directory ${dirPath} 上级目录不存在
fail permission denied, open ${dirPath} 指定的 filePath 路径没有写权限
fail file already exists ${dirPath} 有同名文件或目录


FileSystemManager.readdir(Object object)

读取目录内文件列表

参数

Object object

属性 类型 默认值 必填 说明
dirPath string 要读取的目录路径 (本地路径)
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
files Array.<string> 指定目录下的文件名数组。

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail no such file or directory ${dirPath} 目录不存在
fail not a directory ${dirPath} dirPath 不是目录
fail permission denied, open ${dirPath} 指定的 filePath 路径没有读权限


Array.<string> FileSystemManager.readdirSync(string dirPath)

FileSystemManager.readdir 的同步版本

参数

string dirPath

要读取的目录路径 (本地路径)

返回值

Array.<string> files

指定目录下的文件名数组。

错误

错误码 错误信息 说明
fail no such file or directory ${dirPath} 目录不存在
fail not a directory ${dirPath} dirPath 不是目录
fail permission denied, open ${dirPath} 指定的 filePath 路径没有读权限


FileSystemManager.readFile(Object object)

读取本地文件内容

参数

Object object

属性 类型 默认值 必填 说明 最低版本
filePath string 要读取的文件的路径 (本地路径)
encoding string 指定读取文件的字符编码,如果不传 encoding,则以 ArrayBuffer 格式读取文件的二进制内容
position string 从文件指定位置开始读,如果不指定,则从文件头开始读。读取的范围应该是左闭右开区间 [position, position+length)。有效范围:[0, fileLength - 1]。单位:byte 2.10.0
length string 指定文件的长度,如果不指定,则读到文件末尾。有效范围:[1, fileLength]。单位:byte 2.10.0
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.encoding 的合法值

说明 最低版本
ascii
base64
binary
hex
ucs2 以小端序读取
ucs-2 以小端序读取
utf16le 以小端序读取
utf-16le 以小端序读取
utf-8
utf8
latin1

object.success 回调函数

参数
Object res
属性 类型 说明
data string/ArrayBuffer 文件内容

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail no such file or directory, open ${filePath} 指定的 filePath 所在目录不存在
fail permission denied, open ${dirPath} 指定的 filePath 路径没有读权限


string|ArrayBuffer FileSystemManager.readFileSync(string filePath, string encoding, string position, string length)

FileSystemManager.readFile 的同步版本

参数

string filePath

要读取的文件的路径 (本地路径)

string encoding

指定读取文件的字符编码,如果不传 encoding,则以 ArrayBuffer 格式读取文件的二进制内容

encoding 的合法值

说明 最低版本
ascii
base64
binary
hex
ucs2 以小端序读取
ucs-2 以小端序读取
utf16le 以小端序读取
utf-16le 以小端序读取
utf-8
utf8
latin1

string position

基础库 2.10.0 开始支持,低版本需做兼容处理

从文件指定位置开始读,如果不指定,则从文件头开始读。读取的范围应该是左闭右开区间 [position, position+length)。有效范围:[0, fileLength - 1]。单位:byte

string length

基础库 2.10.0 开始支持,低版本需做兼容处理

指定文件的长度,如果不指定,则读到文件末尾。有效范围:[1, fileLength]。单位:byte

返回值

string|ArrayBuffer data

文件内容

错误

错误码 错误信息 说明
fail no such file or directory, open ${filePath} 指定的 filePath 所在目录不存在
fail permission denied, open ${dirPath} 指定的 filePath 路径没有读权限


FileSystemManager.removeSavedFile(Object object)

删除该小程序下已保存的本地缓存文件

参数

Object object

属性 类型 默认值 必填 说明
filePath string 需要删除的文件路径 (本地路径)
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail file not exist 指定的 tempFilePath 找不到文件


FileSystemManager.rename(Object object)

重命名文件。可以把文件从 oldPath 移动到 newPath

参数

Object object

属性 类型 默认值 必填 说明
oldPath string 源文件路径,支持本地路径
newPath string 新文件路径,支持本地路径
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail permission denied, rename ${oldPath} -> ${newPath} 指定源文件或目标文件没有写权限
fail no such file or directory, rename ${oldPath} -> ${newPath} 源文件不存在,或目标文件路径的上层目录不存在


FileSystemManager.renameSync(string oldPath, string newPath)

FileSystemManager.rename 的同步版本

参数

string oldPath

源文件路径,支持本地路径

string newPath

新文件路径,支持本地路径

错误

错误码 错误信息 说明
fail permission denied, rename ${oldPath} -> ${newPath} 指定源文件或目标文件没有写权限
fail no such file or directory, rename ${oldPath} -> ${newPath} 源文件不存在,或目标文件路径的上层目录不存在


FileSystemManager.rmdir(Object object)

删除目录

参数

Object object

属性 类型 默认值 必填 说明 最低版本
dirPath string 要删除的目录路径 (本地路径)
recursive boolean false 是否递归删除目录。如果为 true,则删除该目录和该目录下的所有子目录以及文件。 2.3.0
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail no such file or directory ${dirPath} 目录不存在
fail directory not empty 目录不为空
fail permission denied, open ${dirPath} 指定的 dirPath 路径没有写权限


FileSystemManager.rmdirSync(string dirPath, boolean recursive)

FileSystemManager.rmdir 的同步版本

参数

string dirPath

要删除的目录路径 (本地路径)

boolean recursive

基础库 2.3.0 开始支持,低版本需做兼容处理

是否递归删除目录。如果为 true,则删除该目录和该目录下的所有子目录以及文件。

错误

错误码 错误信息 说明
fail no such file or directory ${dirPath} 目录不存在
fail directory not empty 目录不为空
fail permission denied, open ${dirPath} 指定的 dirPath 路径没有写权限


FileSystemManager.saveFile(Object object)

保存临时文件到本地。此接口会移动临时文件,因此调用成功后,tempFilePath 将不可用。

参数

Object object

属性 类型 默认值 必填 说明
tempFilePath string 临时存储文件路径 (本地路径)
filePath string 要存储的文件路径 (本地路径)
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
savedFilePath string 存储后的文件路径 (本地路径)

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail tempFilePath file not exist 指定的 tempFilePath 找不到文件
fail permission denied, open "${filePath}" 指定的 filePath 路径没有写权限
fail no such file or directory "${dirPath}" 上级目录不存在
fail the maximum size of the file storage limit is exceeded 存储空间不足


string FileSystemManager.saveFileSync(string tempFilePath, string filePath)

FileSystemManager.saveFile 的同步版本

参数

string tempFilePath

临时存储文件路径 (本地路径)

string filePath

要存储的文件路径 (本地路径)

返回值

string savedFilePath

存储后的文件路径 (本地路径)

错误

错误码 错误信息 说明
fail tempFilePath file not exist 指定的 tempFilePath 找不到文件
fail permission denied, open "${filePath}" 指定的 filePath 路径没有写权限
fail no such file or directory "${dirPath}" 上级目录不存在
fail the maximum size of the file storage limit is exceeded 存储空间不足


FileSystemManager.stat(Object object)

获取文件 Stats 对象

参数

Object object

属性 类型 默认值 必填 说明 最低版本
path string 文件/目录路径 (本地路径)
recursive boolean false 是否递归获取目录下的每个文件的 Stats 信息 2.3.0
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
stats Stats/Object 当 recursive 为 false 时,res.stats 是一个 Stats 对象。当 recursive 为 true 且 path 是一个目录的路径时,res.stats 是一个 Object,key 以 path 为根路径的相对路径,value 是该路径对应的 Stats 对象。

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail permission denied, open ${path} 指定的 path 路径没有读权限
fail no such file or directory ${path} 文件不存在

示例代码

recursive 为 false 时


let fs = wx.getFileSystemManager()
fs.stat({
  path: `${wx.env.USER_DATA_PATH}/testDir`,
  success: res => {
    console.log(res.stats.isDirectory())
  }
})

recursive 为 true 时


fs.stat({
  path: `${wx.env.USER_DATA_PATH}/testDir`,
  recursive: true,
  success: res => {
    Object.keys(res.stats).forEach(path => {
      let stats = res.stats[path]
      console.log(path, stats.isDirectory())
    })
  }
})


Stats|Object FileSystemManager.statSync(string path, boolean recursive)

FileSystemManager.stat 的同步版本

参数

string path

文件/目录路径 (本地路径)

boolean recursive

基础库 2.3.0 开始支持,低版本需做兼容处理

是否递归获取目录下的每个文件的 Stats 信息

返回值

Stats|Object stats

当 recursive 为 false 时,res.stats 是一个 Stats 对象。当 recursive 为 true 且 path 是一个目录的路径时,res.stats 是一个 Object,key 以 path 为根路径的相对路径,value 是该路径对应的 Stats 对象。

错误

错误码 错误信息 说明
fail permission denied, open ${path} 指定的 path 路径没有读权限
fail no such file or directory ${path} 文件不存在

示例代码

recursive 为 false 时


let fs = wx.getFileSystemManager()
fs.stat({
  path: `${wx.env.USER_DATA_PATH}/testDir`,
  success: res => {
    console.log(res.stats.isDirectory())
  }
})

recursive 为 true 时


fs.stat({
  path: `${wx.env.USER_DATA_PATH}/testDir`,
  recursive: true,
  success: res => {
    Object.keys(res.stats).forEach(path => {
      let stats = res.stats[path]
      console.log(path, stats.isDirectory())
    })
  }
})


FileSystemManager.unlink(Object object)

删除文件

参数

Object object

属性 类型 默认值 必填 说明
filePath string 要删除的文件路径 (本地路径)
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值


说明 最低版本
fail permission denied, open ${path} 指定的 path 路径没有读权限
fail no such file or directory ${path} 文件不存在
fail operation not permitted, unlink ${filePath} 传入的 filePath 是一个目录


FileSystemManager.unlinkSync(string filePath)

FileSystemManager.unlink 的同步版本

参数

string filePath

要删除的文件路径 (本地路径)

错误

错误码 错误信息 说明
fail permission denied, open ${path} 指定的 path 路径没有读权限
fail no such file or directory ${path} 文件不存在
fail operation not permitted, unlink ${filePath} 传入的 filePath 是一个目录


FileSystemManager.unzip(Object object)

解压文件

参数

Object object

属性 类型 默认值 必填 说明
zipFilePath string 源文件路径,支持本地路径, 只可以是 zip 压缩文件
targetPath string 目标目录路径, 支持本地路径
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail permission denied, unzip ${zipFilePath} -> ${destPath} 指定目标文件路径没有写权限
fail no such file or directory, unzip ${zipFilePath} -> "${destPath} 源文件不存在,或目标文件路径的上层目录不存在


FileSystemManager.writeFile(Object object)

写文件

参数

Object object

属性 类型 默认值 必填 说明
filePath string 要写入的文件路径 (本地路径)
data string/ArrayBuffer 要写入的文本或二进制数据
encoding string utf8 指定写入文件的字符编码
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.encoding 的合法值

说明 最低版本
ascii
base64
binary
hex
ucs2 以小端序读取
ucs-2 以小端序读取
utf16le 以小端序读取
utf-16le 以小端序读取
utf-8
utf8
latin1

object.fail 回调函数

参数
Object res
属性 类型 说明
errMsg string 错误信息

res.errMsg 的合法值

说明 最低版本
fail no such file or directory, open ${filePath} 指定的 filePath 所在目录不存在
fail permission denied, open ${dirPath} 指定的 filePath 路径没有写权限
fail the maximum size of the file storage limit is exceeded 存储空间不足


FileSystemManager.writeFileSync(string filePath, string|ArrayBuffer data, string encoding)

FileSystemManager.writeFile 的同步版本

参数

string filePath

要写入的文件路径 (本地路径)

string|ArrayBuffer data

要写入的文本或二进制数据

string encoding

指定写入文件的字符编码

encoding 的合法值

说明 最低版本
ascii
base64
binary
hex
ucs2 以小端序读取
ucs-2 以小端序读取
utf16le 以小端序读取
utf-16le 以小端序读取
utf-8
utf8
latin1

错误

错误码 错误信息 说明
fail no such file or directory, open ${filePath} 指定的 filePath 所在目录不存在
fail permission denied, open ${dirPath} 指定的 filePath 路径没有写权限
fail the maximum size of the file storage limit is exceeded 存储空间不足




微信小程序API 文件·获取文件信息
微信小程序API 文件·描述文件状态的对象
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信小程序 指南

目录结构

开放能力

微信小程序 调试

微信小程序 实时日志

微信小程序 小程序测速

微信小程序 基础组件

微信小程序 API

媒体

界面

微信小程序API 绘图

微信小程序 服务端

接口调用凭证

统一服务消息

微信小程序 服务市场

微信小程序 生物认证

微信小程序 云开发

服务端

微信小程序云开发服务端API 数据库

SDK文档

微信小程序 扩展能力

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }