Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在文件系统API中覆盖文件_Javascript_Google Chrome_Html5 Filesystem_Persistent Storage - Fatal编程技术网

Javascript 如何在文件系统API中覆盖文件

Javascript 如何在文件系统API中覆盖文件,javascript,google-chrome,html5-filesystem,persistent-storage,Javascript,Google Chrome,Html5 Filesystem,Persistent Storage,以下是函数: this.saveObj = function(o, finished) { root.getDirectory("object", {create: true}, function(directoryEntry) { directoryEntry.getFile("object.json", {create: true}, function(fileEntry) { fileEntry.createW

以下是函数:

this.saveObj = function(o, finished)
{   
    root.getDirectory("object", {create: true}, function(directoryEntry)
    {
        directoryEntry.getFile("object.json", {create: true}, function(fileEntry) 
        {
            fileEntry.createWriter(function(fileWriter) 
            {

                fileWriter.onwriteend = function(e) 
                {
                    finished(fileEntry);
                };

                fileWriter.onerror = errorHandler;
                var blob = new Blob([JSON.stringify(o)], {type: "json"});

                fileWriter.write(blob);
            }, errorHandler);
        }, errorHandler);
    }, errorHandler);
};
现在,当我保存一个对象时,一切正常。假设我保存
{“id”:1}
我的文件内容将是
{“id”:1}
。现在我用
o={}编辑对象{}“id”:1}


它只是覆盖旧内容,但不清除它。我是否必须在写入文件之前删除该文件,或者是否缺少某些内容?

因为据我所知,写入方法会将提供的内容写入某个位置。对我来说,这意味着现有的内容是不变的,除非您正在覆盖部分。所以我要说是的,删除这个文件并保存一个新的


根据Mozilla文档,仅使用
{create:true}

现有文件或目录将被删除并替换为新文件或目录, 然后使用FileSystemFileEntry或 FileSystemDirectoryEntry,视情况而定

在Chrome72上进行测试,似乎就是这样

这不起作用,因为文件似乎是持久的。文件将被覆盖(第一个字节),但大小将保持不变。这至少是Chrome72中的一个bug