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