Phonegap:你能为一个文件创建2个编写器吗?

时间:2014-02-20 20:38:58

标签: android file cordova writer

我最近开始使用phonegap来开发android。我在学习文件插件API时遇到了这个问题,我想知道是否可以为一个文件创建2个编写器(在两个不同的页面上)。当我在两个不同的页面上尝试下面的代码时(一个写道:“这个团队还没有被发现”,而另一个写道:“这个团队已被侦察:)”出于某种原因,只有一个人会一次工作,如果我跑第一个是第一个创建文件并写入文件,但第二个不起作用。同样,如果我先运行第二个,它会创建文件并写入,但第一个不起作用。

<script type="text/javascript" charset="utf-8">
alert("waiting...");
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);

// device APIs are available
//
function onDeviceReady() {
    alert("Device Ready!");
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onRequestFileSystemSuccess, null);
}
function onRequestFileSystemSuccess(fileSystem) {
    alert("Got file system!");
    fileSystem.root.getDirectory("FRC_SCOUT_DATA", { create: true }, onGotDir, null);

}
function onGotDir(dataDir) {
    alert("Got Directoy!");
    dataDir.getFile("data_1539.txt", { create: true, exclusive: true }, onFileCreated, null);
    alert("Got File!");
}
function onFileCreated(dataFile) {
    dataFile.createWriter(gotFileWriter, null);
}
function gotFileWriter(writer) {
    writer.write("This team has been scouted :)"); 
}


</script>

(第二页上的代码基本相同,但写入文本文件的消息除外)

1 个答案:

答案 0 :(得分:1)

您已保留exclusive: true。因此,如果文件已存在,则会出现错误,请尝试将其设置为false。检查此out

所以改变你的代码

dataDir.getFile("data_1539.txt", { create: true, exclusive: true }, onFileCreated, null);

dataDir.getFile("data_1539.txt", { create: true, exclusive: false}, onFileCreated, fail);

function fail(error) {
    console.log(error.code);
}