Запись в локальную файловую систему в расширении Chrome - PullRequest
5 голосов
/ 25 марта 2011
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'));
                });
            });
        }
    }
}

Ответы [ 3 ]

10 голосов
/ 25 марта 2011

На основании этого:

На момент написания этой статьи, У Google Chrome 9+ есть только рабочий реализация API FileSystem. Поскольку выделенный пользовательский интерфейс браузера не пока существует для управления файлами / квотами, API нельзя использовать без запуска Хром с --unlimited-quota-for-files flag (Примечание: если вы создаете приложение или расширение для Интернет-магазина Chrome, файл манифеста unlimitedStorage разрешение будет достаточно).

найдено на http://www.html5rocks.com/tutorials/file/filesystem/#toc-support

Полагаю, вы используете Chrome и не установили флаг --unlimited-quota-for-files

7 голосов
/ 09 октября 2011

Этот API файловой системы, похоже, не записывает настоящий "файл" на ваш жесткий диск.Похоже, что файл хранится в изолированной безопасной зоне в браузере.Вам придется написать быстрый и грязный файловый менеджер (или найти его там) для управления файлами для данного веб-приложения.Вы также можете попробовать посетить filesystem://<your URL here>/temporary/, чтобы увидеть все файлы, созданные вашим приложением.

1 голос
/ 25 марта 2011

Как насчет использования localStorage ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...