我正在编写一个Javascript函数,使用Cordova文件系统插件写入Android设备上的文本文件。如果在我的config.xml文件中,我使用推荐的设置:
<preference name="AndroidPersistentFileLocation" value="Internal" />
使用fs.root.getFile()
致电INVALID_MODIFICATION_ERR
时代码失败。但如果我使用:
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
代码按预期创建并写入文件。
这可能是什么原因导致使用Compatibility
代替Internal
会对我的应用产生负面影响?
写入文件的代码:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
function(fs) {
var filePath = cordova.file.externalDataDirectory.replace(cordova.file.externalRootDirectory,"");
var fileName = filePath + "acuDevice.txt";
console.log("acuDevice fileName:"+fileName);
fs.root.getFile(fileName, { create:true, exclusive:false },
function(fileEntry) {
console.log("acuDevice fileEntry:"+JSON.stringify(fileEntry));
fileEntry.createWriter(
function (fileWriter) {
fileWriter.onerror = function (err) { console.log("acuDevice write failed:"+JSON.stringify(err)); };
fileWriter.onwriteend = writeComplete;
fileWriter.write("hello acuDevice world");
}
); // createWriter
},
fileErrorHandler
); // getFile
},
fileErrorHandler
); // requestFileSystem