2012-06-26 100 views
2

PhoneGap的 - 如何assets/www/example/hallo.text 我的錯誤創建一個新的文件是"Error fileSystem"如何創建一個新的文件

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; 
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 

function fail() { 
    confirm('Error fileSystem'); 
} 

function gotFS(fileSystem) { 
    fileSystem.root.getFile("file:///android_asset/www/example/hallo.text", { 
    create: true 
    }, gotFileEntry, fail); 
} 

function gotFileEntry(fileEntry) { 
    fileEntry.createWriter(gotFileWriter, fail); 
} 

function gotFileWriter(writer) { 
    writer.write("hallo"); 
} 

回答

2

HTML文件系統API在沙盒文件系統操作。您不能參考完整文件系統的絕對路徑;相反,您的所有Web應用程序的文件系統都存在於設備真正火災系統內的瀏覽器生成的子目錄中。

出於安全原因,故意這樣做,以便Web應用程序只能覆蓋或讀取他們創建的文件。否則,Web上的任何頁面都可能會讀取整個硬盤上的所有私有內容。

您應該使用不合格的文件路徑,如www/example/hallo.text(假設這些目錄存在)或簡單地hallo.text在沙盒文件系統中創建文件。不要使用絕對路徑file:

此外,您的錯誤函數fail可能正在提供帶有錯誤信息的參數。嘗試向function fail(error) ...之類的函數添加參數,並打印出error以獲取更多調試信息。

+0

我得到錯誤代碼5即FileError.ENCODING_ERR – samibel

+0

是,當你使用路徑以'文件://'或沒有? – apsillers

+0

與文件:// getFile(「file:/// android_asset – samibel

0

首先,確保「你」有權寫入目標文件夾(您的設備可能需要具有寫入某些文件夾的根權限)。

之後,請從這裏的說明:http://www.anddev.org/working_with_files-t115.html

+0

OP想知道如何在Phonegap *中創建一個文件*,這是一個HTML5到本機應用程序的橋樑。 JavaScript,而不是原生的Android代碼。 – apsillers