HTML5 本地文件操作之FileSystemAPI整理(二)


一、文件目錄操作

1.DirectoryEntry對象

屬性:

 1.isFile: 操作對象的是否為文件,DirectoryEntry對象固定其值為false

 2.isDirectory: 操作對象是否為目錄,DirectoryEntry對象固定其值為true

 3.name: 目錄操作對象的名稱,不包括路徑

 4.fullPath: 目錄操作對象的完整路徑,文件系統的絕對路徑

 5.fileSystem: 文件操作對象所屬的文件系統對象,參考FileSystem

方法:

 1. entry.getMetadata( successCB, errorCB, recursive ); 獲取文件夾信息

succesCB: ( MetadataSuccessCallback ) 必選 獲取文件或目錄屬性信息成功的回調。

errorCB: ( FileErrorCallback) 必選 獲取文件或目錄屬性信息失敗的回調。

recursive: ( Boolean ) 必選 是否遞歸計算目錄信息,true為遞歸計算獲取信息,false不遞歸計算獲取,默認值為false。(測試時,參數沒起作用)

2.entry.moveTo( parent, newName, succesCB, errorCB ); 移動目錄

3.entry.copyTo( parent, newName, succesCB, errorCB ); 拷貝目錄

說明:以下情況拷貝目錄將會導致失敗: 將父目錄拷貝到子目錄中; 要拷貝到的目標目錄無效; 要拷貝到的目標路徑被文件占用; 要拷貝到的目標目錄已經存在並且不為空。 拷貝目錄成功通過succesCB回調返回,失敗則通過errorCB返回。

4. DOMString entry.toURL(); 獲取目錄路徑轉換為URL地址,示例:filesystem:http://localhost:57128/persistent/txt_2_rename

5. entry.remove( succesCB, errorCB );刪除目錄

說明:以下情況刪除目錄將會導致失敗: 目錄中存在文件; 刪除根目錄; 刪除目錄成功通過succesCB回調返回,失敗則通過errorCB返回。

6. entry.getParent( succesCB, errorCB );獲取父目錄

succesCB: ( EntrySuccessCallback ) 可選 獲取父目錄成功的回調函數,回調函數接收參數為上一級目錄引用DirectoryEntry對象

errorCB: ( FileErrorCallback) 可選 獲取父目錄失敗的回調函數

示例如下:獲取到的是根目錄。

7.  DirectoryReader entry.createReader();

說明:創建一個目錄讀取對象,用戶讀取目下的文件及子目錄。

8. entry.getDirectory( path, flag, succesCB, errorCB ); 創建或打開子目錄

  • path: ( DOMString ) 必選 要操作目錄相對於當前目錄的地址
  • flag: ( Flags ) 可選 要操作文件或目錄的參數
  • succesCB: ( EntrySuccessCallback ) 可選 創建或打開目錄成功的回調函數
  • errorCB: ( FileErrorCallback) 可選 創建或打開目錄失敗的回調函數

9.entry.getFile( path, flag, succesCB, errorCB );創建或打開文件

10.entry.removeRecursively( succesCB, errorCB );遞歸刪除目錄

說明:刪除目錄將會刪除其下的所有文件及子目錄 不能刪除根目錄,如果操作刪除根目錄將會刪除目錄下的文件及子目錄,不會刪除根目錄自身。 刪除目錄成功通過succesCB回調返回,失敗則通過errorCB返回。

 

2.DirectoryReader對象

方法:

1. directoryReader.readEntries( succesCB, errorCB );

說明:獲取當前目錄下的所有文件和子目錄。 獲取操作成功通過succesCB回調返回,失敗則通過errorCB返回。

參數:

succesCB: ( EntrySuccessCallback ) 可選 獲取成功的回調函數,回調函數中返回FileEntry或者DirectoryEntry的數組

errorCB: ( FileErrorCallback) 可選 獲取失敗的回調函數

使用示例:

fs.root.getDirectory('txt_2_rename', { create: false }, function (dirEntry) {
    var dirReader = dirEntry.createReader();
    console.info(dirReader);
    dirReader.readEntries(function (entries) {
        console.info(entries);
    }, errorHandler);
}, errorHandler);

 

3.File對象

說明:文件系統中的文件數據對象,用於獲取文件的數據

屬性:

size: 文件數據對象的數據大小,單位為字節

type: 文件數據對象MIME類型

name: 文件數據對象的名稱,不包括路徑

lastModifiedDate: 文件對象的最后修改時間

方法:

1.   file.slice( start, end );獲取文件指定的數據內容

說明:獲取文件指定的數據內容,其中end必須大於start。

參數:

start: ( Number ) 可選 獲取文件數據的起始位置

end: ( Number ) 可選 獲取文件數據的結束位置

2. file.close(); 關閉文件數據對象

說明:當文件數據對象不再使用時,可通過此方法關閉,釋放系統資源。

二、參數整理

Flags

JSON對象,獲取文件操作的參數

屬性:

create: (Boolean 類型 )是否創建對象標記,指示如果文件或目錄不存在時是否進行創建,默認值為false。

exclusive: (Boolean 類型 )反向操作標記,其本身沒有任何效果,需與create屬性值設置為true時一起使用,如果目標文件或目錄已經存在則會導致文件或目錄打開失敗,默認值為false。

三、URL相關

URLType

文件路徑類型

說明:在文件系統中的文件路徑需轉換成URL格式,已方便runtime快速加載。

RelativeURL

相對路徑URL

說明:只能在擴展API中使用,相對於基座提供的特定目錄,以“_”開頭。

常量:

"_www": (DOMString 類型 )應用資源目錄

保存應用的所有html、css、js等資源文件,與文件系統中根目錄PRIVATE_WWW一致,后面加相對路徑如“_www/res/icon.png”。 注意:應用資源目錄是只讀目錄,只能讀取次目錄下的文件,不能修改或新建。

"_doc": (DOMString 類型 )應用私有文檔目錄

用於保存應用運行期業務邏輯數據,與文件系統中根目錄PRIVATE_DOCUMENTS,如“_doc/userdata.xml”。

"_documents": (DOMString 類型 )程序公用文檔目錄

用於保存程序中各應用間可共享文件的目錄,與文件系統中根目錄PUBLIC_DOCUMENTS,如“_document/share.doc”。

"_downloads": (DOMString 類型 )程序公用下載目錄

用於保存程序下載文件的目錄,與文件系統中根目錄PUBLIC_DOWNLOADS,如“_download/mydoc.doc”。

LocalURL

本地路徑URL

說明:可在html頁面中直接訪問本地資源,以“file:///”開頭,后面跟隨系統的絕對路徑。 如示例:“file:///D:/res/hello.html”。沙盒系統還有以‘filesystem:http://’開頭

RemoteURL

網絡路徑URL

說明:可在html頁面中以網絡資源模式訪問本地資源,以“http://”開頭,后面跟隨相對路徑。 如示例:“http://localhost:13131/_www/res/icon.png”,其中“_www”字段可支持類型與相對路徑URL一致。

 

更多:

HTML5 本地文件操作之FileSystemAPI整理(一)

HTML5 本地文件操作之FileSystemAPI簡介


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM