QQ小游戲 文件系統(tǒng)

2020-07-15 15:32 更新

文件系統(tǒng)是小程序提供的一套以小程序和用戶維度隔離的存儲(chǔ)以及一套相應(yīng)的管理接口。通過 qq.getFileSystemManager() 可以獲取到全局唯一的文件系統(tǒng)管理器,所有文件系統(tǒng)的管理操作通過 FileSystemManager 來調(diào)用。

const fs = qq.getFileSystemManager()

文件主要分為兩大類:

  • 代碼包文件:代碼包文件指的是在項(xiàng)目目錄中添加的文件。
  • 本地文件:通過調(diào)用接口本地產(chǎn)生,或通過網(wǎng)絡(luò)下載下來,存儲(chǔ)到本地的文件。

其中本地文件又分為三種:

  1. 本地臨時(shí)文件:臨時(shí)產(chǎn)生,隨時(shí)會(huì)被回收的文件。不限制存儲(chǔ)大小。

  1. 本地緩存文件:小程序通過接口把本地臨時(shí)文件緩存后產(chǎn)生的文件,不能自定義目錄和文件名。除非用戶主動(dòng)刪除小程序,否則不會(huì)被刪除。跟本地用戶文件共計(jì),普通小程序最多可存儲(chǔ) 10MB,游戲類目的小程序最多可存儲(chǔ) 50MB。

  1. 本地用戶文件:小程序通過接口把本地臨時(shí)文件緩存后產(chǎn)生的文件,允許自定義目錄和文件名。除非用戶主動(dòng)刪除小程序,否則不會(huì)被刪除。跟本地緩存文件共計(jì),普通小程序最多可存儲(chǔ) 10MB,游戲類目的小程序最多可存儲(chǔ) 50MB。

代碼包文件

由于代碼包文件大小限制,代碼包文件適用于放置首次加載時(shí)需要的文件,對(duì)于內(nèi)容較大或需要?jiǎng)討B(tài)替換的文件,不推薦用添加到代碼包中,推薦在小游戲啟動(dòng)之后再用下載接口下載到本地。

訪問代碼包文件

代碼包文件的訪問方式是從項(xiàng)目根目錄開始寫文件路徑,不支持相對(duì)路徑的寫法。

示例

qq.chooseImage({
  success(res) {
    const tempFilePaths = res.tempFilePaths // tempFilePaths 的每一項(xiàng)是一個(gè)本地臨時(shí)文件路徑
  }
})

本地緩存文件

本地緩存文件只能通過調(diào)用特定接口產(chǎn)生,不能直接寫入內(nèi)容。本地緩存文件產(chǎn)生后,重啟之后仍可用。本地緩存文件只能通過 FileSystemManager.saveFile() 接口將本地臨時(shí)文件保存獲得。

示例

fs.saveFile({
  tempFilePath: '', // 傳入一個(gè)本地臨時(shí)文件路徑
  success(res) {
    console.log(res.savedFilePath) // res.savedFilePath 為一個(gè)本地緩存文件路徑
  }
})

本地用戶文件

我們提供了一個(gè)用戶文件目錄給開發(fā)者,開發(fā)者對(duì)這個(gè)目錄有完全自由的讀寫權(quán)限。通過qq.env.USER_DATA_PATH 可以獲取到這個(gè)目錄的路徑。

示例

// 在本地用戶文件目錄下創(chuàng)建一個(gè)文件 hello.txt,寫入內(nèi)容 "hello, world"
const fs = qq.getFileSystemManager()
fs.writeFileSync(`${qq.env.USER_DATA_PATH}/hello.txt`, 'hello, world', 'utf8')

讀寫權(quán)限

接口、組件
代碼包文件
本地臨時(shí)文件
本地緩存文件
本地用戶文件
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)