HTML5 本地文件操作之FileSystemAPI整理(一)
一、請求配額
DeprecatedStorageInfo對象
window.webkitStorageInfo:當使用持久存儲模式時需要用到該對象的接口
方法:
1.requestQuota(type,size,successCB,errorCB);請求配額
2.queryUsageAndQuota();獲取配額信息
window.requestFileSystem(window.PERSISTENT, gratedBytes, initFs, errorHandler);
DOMFileSystem對象
文件系統對象,用于管理特定本地文件目錄
說明:文件系統對象表示一個應用可訪問的根目錄。name屬性用于標識此根目錄的名稱,與LocalFileSystem中的文件系統類型一一對應。root屬性為文件目錄對象,用于實際操作文件系統,參考DirectoryEntry。
屬性:
1.name:當前沙盒系統名稱,協議、域名、端口+操作類型
2.root:當前沙盒系統的根目錄對象DirectoryEntry
二、文件操作
1.FileEntry
屬性:
1.name:文件名稱,包括擴展名
2.fullPath:相對沙盒根目錄的全名稱
3.isFile:是否是文件,FileEntry對象固定為true
4.isDirectory:是否是文件夾,FileEntry對象固定為false
5.filesystem:當前fs(FileSystem對象)的引用
方法:
fileEntry.getMetadata(successCallback, opt_errorCallback); fileEntry.remove(successCallback, opt_errorCallback); fileEntry.moveTo(dirEntry, opt_newName, opt_successCallback, opt_errorCallback); fileEntry.copyTo(dirEntry, opt_newName, opt_successCallback, opt_errorCallback); fileEntry.getParent(successCallback, opt_errorCallback); fileEntry.toURL(opt_mimeType); fileEntry.file(successCallback, opt_errorCallback); fileEntry.createWriter(successCallback, opt_errorCallback);1.entry.getMetadata( successCB, errorCB ),獲取文件信息
MetadataSuccessCallback
獲取文件或目錄狀態信息成功的回調函數,獲取文件信息成功返回Metadata對象,詳細參考見下面。
void onSuccess( metadata ) { // Metadata code. }2.? entry.moveTo( parent, newName, succesCB, errorCB ); 移動文件
說明:以下情況移動目錄將會導致失敗: 要移動到的目標目錄無效; 要移動到的目標路徑被其它文件占用; 移動文件成功通過succesCB回調返回,失敗則通過errorCB返回。
參數:
parent: ( DirectoryEntry ) 必選 要移動到的目標目錄
newName: ( DOMString ) 可選 移動后的文件名稱,默認為原始文件名稱
succesCB: ( EntrySuccessCallback ) 可選 移動文件成功的回調函數
回調函數中的參數保存新的文件對象。
errorCB: ( FileErrorCallback ) 可選 移動文件失敗的回調函數
3.? entry.copyTo( parent, newName, succesCB, errorCB );??拷貝文件
4.? DOMString entry.toURL();?獲取文件路徑轉換為URL地址,返回‘filesytem:http://’格式
5.?DOMString entry.toLocalURL();: 獲取文件路徑轉換為本地路徑URL地址,測試時沒有該方法
6.?DOMString entry.toRemoteURL();獲取文件路徑轉換為網絡路徑URL地址,測試時沒有該方法。
7.entry.remove( succesCB, errorCB ); 刪除文件
8.? entry.getParent( succesCB, errorCB );?獲取文件所屬的父目錄
9.? ?entry.createWriter( succesCB, errorCB );??獲取文件關聯的寫文件操作對象FileWriter,在FileWriterSuccessCallback 參數中返回
10.? entry.file( succesCB, errorCB );獲取文件數據對象,在FileSuccessCallback 參數總獲取
11.
2.FileWriter對象
屬性:
1.readyState:當前文件讀取寫入狀態,常量值如下:
- INIT: 值為0,寫文件初始化狀態
- WRITING: 值為1,正在寫入文件狀態
- DONE: 值為2,寫文件操作完成狀態
2.position:當前操作指針位置
3.length:當前寫入文件的長度,字節數
4.error:異常
方法:
1.seek(number):將寫入流,指針移動到指定位置,說明:定位文件的操作位置,有效值為0到文件的總長度減1。 0表示文件的起始位置。
2.abort():終止寫入,說明:寫入文件數據操作開始后,可通過此方法取消寫入文件數據操作。調用此方法后將觸發文件寫入對象的onabort事件。
3.truncate(number):按照指定長度截斷文件。
4.write(data):從文件當前定位的位置開始,寫入數據到文件中。 如果文件中已經存在數據,新寫入的數據將覆蓋已有數據
data:File對象,Blob對象,DOMString類型。
5.
事件:
- onwritestart: 寫入文件開始時的回調函數
- onprogress: 寫入文件過程中的回調函數
- onwrite: 寫入文件成功完成的回調函數
- onabort: 取消寫入文件時的回調函數
- onerror: 文件寫入操作失敗時調用的回調函數
- onwriteend: 文件寫入操作完成時的回調函數
3.FileReader對象,參考:http://www.cnblogs.com/tianma3798/p/5836484.html
?
三、參數對象
Metadata
JSON對象,保存文件或目錄的狀態信息對象
說明:可通過DirectoryEntry或FileEntry對象的getMetaData方法獲取
屬性:
modificationTime: (Date 類型 )文件或目錄的最后修改時間
size: (Number 類型 )文件的大小,若獲取的是目錄對象的屬性則值為0。
directoryCount: (Number 類型 )包含的子目錄數,若自身是文件則其值為0。測試時不可用
fileCount: (Number 類型 )目錄的文件數,若自身是文件則其值為0。測試時不可用
?
更多:
HTML5 本地文件操作之FileSystemAPI簡介
?
總結
以上是生活随笔為你收集整理的HTML5 本地文件操作之FileSystemAPI整理(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 饿汉式单例模式
- 下一篇: JAVA 对象序列化(二)——Exter