1

以下の関数を使用してテキストファイルに書き込みますが、1番目のファイルの書き込みは正常に機能します。

function writeFile(data) 
{
    try
    {
        writeTextFile = function(writer) 
        {
            // adding handlers
            writer.seek(0);
            writer.onwritestart = onFileEvent;
            writer.onprogress = onFileEvent;
            writer.onwrite = onFileWrite;
            writer.onabort = onFileEvent;
            writer.onerror = onFileError;
            writer.onwriteend = onFileEvent;            
            writer.write(data);   
            //writer.write(encodeString(data));   

        };

        createTextWriter = function(fileEntry) 
        {
            fileEntry.createWriter(writeTextFile, onFileSystemError);
        };

        mRoot.getFile(APPLICATION_FILE_PREFIX+APPLICATION_FILE_NAME, {create: true}, createTextWriter, onFileSystemError);



    }
    catch(ex)
    {
        console.log("Error in Write : \n " + ex);
        alert(ex);
    }
}

しかし、別のファイルを書き込むために関数を再度呼び出すと、前に書き込まれたファイルが上書きされます。

上記の関数をコピーして、名前をfunction writeFile2(data)andcreateTextWriterに変更することで、この問題を修正しました。createTextWriter2writeTextFilewriteTextFile2

だから私はまた同じような機能を持っています。50個のファイルを書く必要があるかのように実用的ではありません。50個の関数が必要です。

これはJavaScriptに関連するものだと思います。誰かが私を助けてくれませんか。[writeTextFile = function(writer)はどういう意味ですか?ライターが前のライターを持っているかどうかをクリアしたい場合かもしれません]

4

1 に答える 1

1

writeTextFile = function(writer)使用する代わりに var writeTextFile = function(writer)

これにより、writeTextFileがローカルになり、関数を終了するとリセットされます

于 2012-11-09T03:55:41.733 に答える