在Chrome扩展程序中写入本地文件系统

Der*_*rek 5 javascript google-chrome google-chrome-extension

chrome.tabs.onUpdated.addListener(checkForValidUrl);
function checkForValidUrl(tabId, changeInfo, tab) {
    if (tab.url.indexOf('https') > -1) {
        var tabURL = tab.url;
        console.log("\n<TimeStamp>" + getTimestamp() + "</TimeStamp><Browser>Chrome</Browser><URL>" + tabURL + "</URL>\n");
        window.requestFileSystem(window.PERSISTENT, 5 * 1024 * 1024, initFs);

        function initFs(fs) {
            fs.root.getFile
            ('log.txt', { create: true, exclusive: true }, function (fileEntry) {
                fileEntry.isFile = true;
                fileEntry.name = 'log.txt';
                fileEntry.fullPath = '/log.txt';
                fileEntry.createWriter(function (fileWriter) {
                    fileWriter.seek(fileWriter.length);
                    var bb = new BlobBuilder();
                    bb.append("\n<TimeStamp>" + getTimestamp() + "</TimeStamp><Browser>Chrome</Browser><URL>" + tabURL + "</URL>\n");
                    fileWriter.write(bb.getBlob('text/plain'));
                });
            });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

HBP*_*HBP 10

基于此:

在撰写本文时,Google Chrome 9+是FileSystem API唯一可用的实现.由于文件/配额管理尚不存在专用的浏览器用户界面,因此如果不使用--unlimited-quota-for-files标记运行Chrome,则无法使用该API(注意:如果您要为Chrome构建应用或扩展程序) Web Store,unlimitedStorage清单文件权限就足够了).

http://www.html5rocks.com/tutorials/file/filesystem/#toc-support

我假设您使用的是Chrome,而您尚未设置--unlimited-quota-for-files标志


小智 7

此文件系统API似乎并未实际将真正的"文件"写入您的硬盘.它似乎将文件存储在浏览器的沙盒安全区域中.您将不得不编写一个快速而肮脏的小文件管理器(或在那里找到一个)来管理给定Web应用程序的文件.您还可以尝试访问filesystem://<your URL here>/temporary/以查看应用已创建的所有文件.