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)createTextWritertocreateTextWriter2writeTextFile解决了这个问题writeTextFile2

所以我又拥有了同样的功能。好像我需要写 50 个文件,我需要 50 个函数是不切实际的。

我认为这是一些与javascript相关的事情。任何人都可以帮助我。[ writeTextFile = function(writer) 是什么意思?可能是如果作者想清除它是否有以前的作者]

4

1 回答 1

1

而不是 writeTextFile = function(writer)使用var writeTextFile = function(writer)

这将使您的 writeTextFile 本地化,并在您退出函数时重置

于 2012-11-09T03:55:41.733 回答