使用android文件访问cordova / phonegap的位置在哪里

时间:2013-08-07 20:30:45

标签: cordova

我刚刚开始使用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在哪里?或者,也许我完全弄错了?

非常感谢!

2 个答案:

答案 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设备上。

对于模拟器,你可以通过这样做找到它 -

  1. 切换到 DDMS 观点
  2. 设备列表中选择您要浏览其SD卡的模拟器。
  3. 在右侧打开文件资源管理器标签。
  4. 展开树形结构。的 MNT / SD卡/
  5. enter image description here

    我建议在gotFileWriter中放置一个回调函数,以确切知道写完成的时间 -

    function gotFileWriter(writer) {
        writer.onwriteend = function(evt) {
            console.log('write has finished');
        };
        writer.seek(writer.length);
        writer.write(textToWrite);
    }