6

我已經通過文件系統的APIHTML5文件系統API進行

function initFS(grantedBytes) { 
    window.requestFileSystem(window.PERSISTENT, grantedBytes, function (filesystem) { 
     fs = filesystem; 

     fs.root.getFile('log.txt', { create: true, exclusive: true }, function (fileEntry) { 

      // fileEntry.isFile === true 
      // fileEntry.name == 'log.txt' 
      // fileEntry.fullPath == '/log.txt' 
      console.log(fileEntry.fullPath); 



     }, errorHandler); 
    }, errorHandler); 
} 

initFS(1024*1024); 

創建文件 'log.txt的' 而且不完全瞭解它的結構。有沒有什麼辦法來探索這個文件 例如從Windows資源管理器,並在文件系統中看到它?

+1

HTML5文件系統被沙盒化:沒有簡單的方法從Windows訪問它。這是一項安全功能,可防止惡意代碼攻擊主機文件系統。 – 2013-10-06 09:48:26

+0

而我甚至不能設置腳本標記的src到這個文件? –

+0

答案是否定的,並有很好的理由。一個更完整的答案,原因,在我的答案解釋在這裏:http://stackoverflow.com/a/19281109/2567232 – PhilNicholas

回答

3

排序,文件系統API不加密本地存儲的數據。但它確實改變了文件命名規則。所以你可能已經命名爲log.txt,但是如果你在文件系統API中存儲文件的位置,你可能會在某些隨機生成的文件名稱(如「00010」)或隨機目錄(如「24/00123」)中找到它。

無論如何,您可以在文本編輯器中打開每個文件 - 如果您的文件有寫入文本,您可以按此方式查看它。或者,如果您將JSON寫入文件系統API,則在文本編輯器中打開時,它將採用可讀的字符串格式。

在Windows 7上使用Chrome它這裏找到:

C:\Users\{user}\AppData\Local\Google\Chrome\User Data\Default\File System\ 

如果你想找出它是通過瀏覽器存儲在其他操作系統,請參閱this post

0

日誌文件的最終用戶或維護者可能希望看到的應該存儲在普通文件系統中的某個位置。雖然檢查的答案建議如何在使用HTML5 API時找到它們,但該位置可能會發生變化,並且很難找到。

更好的解決方案是讓用戶在安裝應用程序時使用chrome.fileSystem.chooseEntry選擇日誌文件(可能還有其他文件)的目錄,然後使用chrome.fileSystem.chooseEntry保留該條目並將其保存到本地存儲中,以便它可以在隨後的發射中重複使用。

3

有一種更簡單的方法。在Chrome上,訪問這些網址。
對於http,它是"filesystem:http://"+location.host+"/persistent/"
對於https,它是"filesystem:https://"+location.host+"/persistent/"