проблема с приложением - PullRequest
3 голосов
/ 29 июля 2011

Попытка использовать phonegap 0.9.6 для хранения файлов. Код работает нормально, когда я пишу файл, но не работает, когда я пытаюсь добавить файл (используя поиск, усечение и т. Д.).

В версии 0.9.5 была ошибка, которая, кажется, исправлена.

Код просто завершается, когда я вызываю writer.seek. Предупреждение после усечения (или если я удалю усечение поиска) вообще не вызывается.

Должен ли я где-нибудь установить флаг добавления? Док говорит, что, но не дает пример того, где я должен установить флаг добавления. Код выглядит следующим образом

function gotFS(fileSystem) {
        fileSystem.root.getFile( "test.txt", {"create":true,
            "exclusive":false}, gotFileEntry, fail);
    }

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

    function gotFileWriter(writer) {
        writer.onwrite = function(evt) {
            console.log("write success");
        };

        writer.write("some sample text");
        // contents of file now 'some sample text'
        writer.truncate(11);
        alert('truncated');
        // contents of file now 'some sample'
        writer.seek(writer.length); //writer.seek(4) does not work either

        // contents of file still 'some sample' but file pointer is after the 'e' in 'some'
        writer.write(" different text");
        // contents of file now 'some different text'
        alert('success with diff text');
    }

Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Я нашел обходной путь к этому:

        function gotFileWriter(writer) {
            writer.onwrite = function(evt) {
                console.log("write success");
            };

            writer.write("some sample text");
            // contents of file now 'some sample text'
            writer.abort();
            writer.truncate(11);
            // contents of file now 'some sample'
            writer.abort();
            writer.seek(writer.length); //writer.seek(4) does not work either

            // contents of file still 'some sample' but file pointer is after the 'e' in 'some'
            writer.write(" different text");
        }
0 голосов
/ 07 мая 2013

Обработка файлов асинхронная.Вы не можете просто выполнять операции с файлами шаг за шагом.Вам нужно дождаться событий onwrite, прежде чем делать следующий шаг.writer.abort () может исправить ошибку.Но вы не можете быть уверены, что хранится.

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