Eksperymentuję z interfejsem API HTML5 i potrzebuję metody, o której nie wiem wystarczająco dużo (po prostu dlatego, że nigdzie jej nie udokumentowano).Korzystanie z metody skracania pliku HTML5 FileWriter()?
Mówię o metodzie przycinania FileWriter() i wiem, że robi to, co muszę zrobić. Zasadniczo, zamiast dołączania tekstu do niektórych plików lub używania funkcji seek() w celu nadpisania określonej części, chcę nadpisać wszystkie dane czymś innym (np. Od "somedata" do "").
Oto fragment konfiguracji FileWriter od HTML5Rocks, ze skróconej() dodaje się.
function onInitFs(fs) {
fs.root.getFile('log.txt', {create: false}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
fileWriter.seek(fileWriter.length); // Start write position at EOF.
fileWriter.truncate(1);
// Create a new Blob and write it to log.txt.
var bb = new BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
bb.append('Hello World');
fileWriter.write(bb.getBlob('text/plain'));
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.PERSISTENT, 1024*1024, onInitFs, errorHandler);
Kiedy robi się wywołaniem writer.truncate(), nazywając writer.write() zgłasza błąd wyjątku pliku . Wierzę, że dzieje się tak dlatego, że parametr readyState jest ustawiony na PISANIE. Niestety, nie wiem, jak sobie z tym poradzić.
Próbowałem już przejrzeć HTML5Rocks section na ten temat, ale nie mówi mi nic o metodę truncate() (chociaż wiem, że istnieje z tego, co mówi mi konsola JS Webkit).
Krótka historia, jak mogę poprawnie użyć metody truncate() bez otrzymania błędu?
[W3C truncate spec] (http://www.w3.org/TR/file-writer-api/#widl-FileWriter- nruncate) ciesz się. – Raynos
Po co przycinać (1)? Dlaczego nie skrócić (0), aby uzyskać plik o zerowym rozmiarze? – huyz