您當前所在的位置:
文件系統是小程序提供的一套以小程序和用戶維度隔離的存儲以及一套相應的管理接口。通過 wx.getFileSystemManager() 可以獲取到全局唯一的文件系統管理器,所有文件系統的管理操作通過 FileSystemManager 來調用。
var fs = wx.getFileSystemManager()
文件主要分為兩大類:
其中本地文件又分為三種:
由于代碼包文件大小限制,代碼包文件適用于放置首次加載時需要的文件,對于內容較大或需要動態替換的文件,不推薦用添加到代碼包中,推薦在小游戲啟動之后再用下載接口下載到本地。
代碼包文件的訪問方式是從項目根目錄開始寫文件路徑,不支持相對路徑的寫法。如:/a/b/c、a/b/c 都是合法的,./a/b/c ../a/b/c 則不合法。
代碼包內的文件無法在運行后動態修改或刪除,修改代碼包文件需要重新發布版本。
本地文件指的是小程序被用戶添加到手機后,會有一塊獨立的文件存儲區域,以用戶維度隔離。即同一臺手機,每個微信用戶不能訪問到其他登錄用戶的文件,同一個用戶不同 appId 之間的文件也不能互相訪問。
本地文件的文件路徑均為以下格式:
{{協議名}}://文件路徑
其中,協議名在 iOS/Android 客戶端為 "wxfile",在開發者工具上為 "http",開發者無需關注這個差異,也不應在代碼中去硬編碼完整文件路徑。
本地臨時文件只能通過調用特定接口產生,不能直接寫入內容。本地臨時文件產生后,僅在當前生命周期內有效,重啟之后即不可用。因此,不可把本地臨時文件路徑存儲起來下次使用。如果需要下次在使用,可通過 FileSystemManager.saveFile() 或 FileSystemManager.copyFile() 接口把本地臨時文件轉換成本地緩存文件或本地用戶文件。
wx.chooseImage({success: function (res) {var tempFilePaths = res.tempFilePaths // tempFilePaths 的每一項是一個本地臨時文件路徑}})
本地緩存文件只能通過調用特定接口產生,不能直接寫入內容。本地緩存文件產生后,重啟之后仍可用。本地緩存文件只能通過 FileSystemManager.saveFile() 接口將本地臨時文件保存獲得。
fs.saveFile({tempFilePath: '', // 傳入一個本地臨時文件路徑success(res) {console.log(res.savedFilePath) // res.savedFilePath 為一個本地緩存文件路徑}})
注意:本地緩存文件是最初的設計,1.7.0 版本開始,提供了功能更完整的本地用戶文件,可以完全覆蓋本地緩存文件的功能,如果不需要兼容低于 1.7.0 版本,可以不使用本地緩存文件。
本地用戶文件是從 1.7.0 版本開始新增的概念。我們提供了一個用戶文件目錄給開發者,開發者對這個目錄有完全自由的讀寫權限。通過 wx.env.USER_DATA_PATH 可以獲取到這個目錄的路徑。
// 在本地用戶文件目錄下創建一個文件 hello.txt,寫入內容 "hello, world"const fs = wx.getFileSystemManager()fs.writeFileSync(`${wx.env.USER_DATA_PATH}/hello.txt`, 'hello, world', 'utf8')
接口、組件 | 讀 | 寫 |
---|---|---|
代碼包文件 | 有 | 無 |
本地臨時文件 | 有 | 無 |
本地緩存文件 | 有 | 無 |
本地用戶文件 | 有 | 有 |
2020-11-08 09:07:57
瀏覽: 6068
文件系統是小程序提供的一套以小程序和用戶維度隔離的存儲以及一套相應的管理接口。通過 wx.getFileSystemManager() 可以獲取到全局唯一的文件系統管理器,所有文件系統的管理操作通過 FileSystemManager 來調用。
var fs = wx.getFileSystemManager()
文件主要分為兩大類:
其中本地文件又分為三種:
由于代碼包文件大小限制,代碼包文件適用于放置首次加載時需要的文件,對于內容較大或需要動態替換的文件,不推薦用添加到代碼包中,推薦在小游戲啟動之后再用下載接口下載到本地。
代碼包文件的訪問方式是從項目根目錄開始寫文件路徑,不支持相對路徑的寫法。如:/a/b/c、a/b/c 都是合法的,./a/b/c ../a/b/c 則不合法。
代碼包內的文件無法在運行后動態修改或刪除,修改代碼包文件需要重新發布版本。
本地文件指的是小程序被用戶添加到手機后,會有一塊獨立的文件存儲區域,以用戶維度隔離。即同一臺手機,每個微信用戶不能訪問到其他登錄用戶的文件,同一個用戶不同 appId 之間的文件也不能互相訪問。
本地文件的文件路徑均為以下格式:
{{協議名}}://文件路徑
其中,協議名在 iOS/Android 客戶端為 "wxfile",在開發者工具上為 "http",開發者無需關注這個差異,也不應在代碼中去硬編碼完整文件路徑。
本地臨時文件只能通過調用特定接口產生,不能直接寫入內容。本地臨時文件產生后,僅在當前生命周期內有效,重啟之后即不可用。因此,不可把本地臨時文件路徑存儲起來下次使用。如果需要下次在使用,可通過 FileSystemManager.saveFile() 或 FileSystemManager.copyFile() 接口把本地臨時文件轉換成本地緩存文件或本地用戶文件。
wx.chooseImage({success: function (res) {var tempFilePaths = res.tempFilePaths // tempFilePaths 的每一項是一個本地臨時文件路徑}})
本地緩存文件只能通過調用特定接口產生,不能直接寫入內容。本地緩存文件產生后,重啟之后仍可用。本地緩存文件只能通過 FileSystemManager.saveFile() 接口將本地臨時文件保存獲得。
fs.saveFile({tempFilePath: '', // 傳入一個本地臨時文件路徑success(res) {console.log(res.savedFilePath) // res.savedFilePath 為一個本地緩存文件路徑}})
注意:本地緩存文件是最初的設計,1.7.0 版本開始,提供了功能更完整的本地用戶文件,可以完全覆蓋本地緩存文件的功能,如果不需要兼容低于 1.7.0 版本,可以不使用本地緩存文件。
本地用戶文件是從 1.7.0 版本開始新增的概念。我們提供了一個用戶文件目錄給開發者,開發者對這個目錄有完全自由的讀寫權限。通過 wx.env.USER_DATA_PATH 可以獲取到這個目錄的路徑。
// 在本地用戶文件目錄下創建一個文件 hello.txt,寫入內容 "hello, world"const fs = wx.getFileSystemManager()fs.writeFileSync(`${wx.env.USER_DATA_PATH}/hello.txt`, 'hello, world', 'utf8')
接口、組件 | 讀 | 寫 |
---|---|---|
代碼包文件 | 有 | 無 |
本地臨時文件 | 有 | 無 |
本地緩存文件 | 有 | 無 |
本地用戶文件 | 有 | 有 |
相關設計案例
相關網站設計案例
建站資訊