我想使用chrome.fileSystem API在C:/或任何位置創建一個新文件,但我無法弄清楚如何使用此API。我如何使用Chrome App文件系統API
我找不到文件路徑的任何參數,只有東西是fileEntry,但我怎麼能用類似C:// a/b/c的東西生成fileEntry?
我想使用chrome.fileSystem API在C:/或任何位置創建一個新文件,但我無法弄清楚如何使用此API。我如何使用Chrome App文件系統API
我找不到文件路徑的任何參數,只有東西是fileEntry,但我怎麼能用類似C:// a/b/c的東西生成fileEntry?
工作起來有點棘手。但它遵循其他語言使用的相同模型,除了因爲所有回調而更加詭計外。這是我寫的一個函數,用於獲取嵌套文件條目,創建目錄。也許這可以幫助你開始。
對於這個函數,你傳遞一個FileSystem,你可以從類似chrome.fileSystem.chooseEntry的類中獲得一個目錄類型選項,路徑將在你的例子中['a','b','c ']
function recursiveGetEntry(filesystem, path, callback) {
function recurse(e) {
if (path.length == 0) {
if (e.isFile) {
callback(e)
} else {
callback({error:'file exists'})
}
} else if (e.isDirectory) {
if (path.length > 1) {
e.getDirectory(path.shift(), {create:true}, recurse, recurse)
} else {
e.getFile(path.shift(), {create:true}, recurse, recurse)
}
} else {
callback({error:'file exists'})
}
}
recurse(filesystem)
}
對於安全原因,Chrome應用程序有限制 - 可以訪問哪些文件。基本上,用戶需要批准從應用程序訪問所訪問的文件和目錄。
訪問應用程序沙箱外的文件的唯一方法是通過用戶手勢 - 也就是說,您需要詢問用戶文件。你可以用chrome.fileSystem.chooseEntry
來做到這一點。
如果這不是很明顯,也許你可以解釋更多關於你正在試圖處理這些文件的信息,我們可以給出建議,告訴你如何做到這一點。通常chrome.fileSystem
不是數據存儲的最佳選擇 - 還有其他更方便和沙盒交替的方式,如chrome.storage
。
我想存儲文件到一個真正的本地驅動器,沒有任何對話或其他任何東西。它應該在後臺完成,而不需要任何手動操作。我曾經使用NPAPI來做到這一點,但現在我找不到任何替代方案。 –
當然,NPAPI可以做很多事情。它是未經裝箱和不安全的。你應該提出另一個問題來解釋你試圖解決什麼問題。例如。它是用戶數據,還是用戶首選項,還是內部緩存/數據庫?這些都可以完成,但有不同的工具,每個工具適合不同類型的任務。 –