我刚刚开始使用phonegap进行Android应用开发。我正在尝试使用这样的代码写入文件(跟随phonegag示例)。
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function writeText(file, text) {
fileName = file;
textToWrite = text;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
fileSystem.root.getFile(fileName, {create: true, exclusive: false}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, fail);
}
function gotFileWriter(writer) {
writer.seek(writer.length);
writer.write(textToWrite);
console.log("Output: " + textToWrite);
}
function fail(error) {
console.log(error.code);
}
在使用Eclipse作为调试器的android模拟器中,我可以看到行已执行(日志行打印出来)。没有任何错误。但是,我在我的系统中找不到该文件。文件应该放在哪里?我可以在Windows中查看它吗?
以下是我如何称呼作家。 writeText(“test.txt”,“结束......”);
文件test.txt在哪里?或者,也许我完全弄错了?
非常感谢!
答案 0 :(得分:2)
我的设备(Cordova 3.3)上写的位置是/storage/sdcard0
,但它也位于/storage/emulated/legacy
。
您可以通过在写入文件时记录dir.filePath
来找到位置
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onRequestFileSystemSuccess, null);
function onRequestFileSystemSuccess(fileSystem) {
var entry=fileSystem.root;
entry.getDirectory("directory", {create: true, exclusive: true}, onGetDirectorySuccess, onGetDirectoryFail);
}
function onGetDirectorySuccess(dir) {
console.log("Created directory "+ dir.name + ", FilePath: "+ dir.fullPath);
}
function onGetDirectoryFail(error) {
console.log("Error creating directory "+error.code);
}
希望有所帮助!
答案 1 :(得分:0)
我相信PhoneGap会将文件放在/mnt/storage/sdcard0
设备上。
对于模拟器,你可以通过这样做找到它 -
我建议在gotFileWriter
中放置一个回调函数,以确切知道写完成的时间 -
function gotFileWriter(writer) {
writer.onwriteend = function(evt) {
console.log('write has finished');
};
writer.seek(writer.length);
writer.write(textToWrite);
}