Android Cordova-将文件保存到存储

Android Cordova-将文件保存到存储,android,file,cordova,plugins,storage,Android,File,Cordova,Plugins,Storage,我正在制作一个Cordova应用程序,需要从中导出一个文件。我想将文件保存到Android设备的存储器中:/storage/emulated/0/。应用程序应该创建一个文件夹,在其中创建包含内容的文件 我尝试了cordova插件文件插件,但我不确定如何使用它。上有一些示例,但我不知道使用哪一个,有: 我都试过了,但都不管用 如果可能的话,我们将非常感谢您的帮助和示范 编辑 这是我使用的代码。我没有得到任何错误 function createFile(dirEntry, fileName

我正在制作一个Cordova应用程序,需要从中导出一个文件。我想将文件保存到Android设备的存储器中:
/storage/emulated/0/
。应用程序应该创建一个文件夹,在其中创建包含内容的文件

我尝试了
cordova插件文件
插件,但我不确定如何使用它。上有一些示例,但我不知道使用哪一个,有:

我都试过了,但都不管用

如果可能的话,我们将非常感谢您的帮助和示范

编辑 这是我使用的代码。我没有得到任何错误

function createFile(dirEntry, fileName, fileContent, isAppend) {
    dirEntry.getFile(fileName, {create: true, exclusive: false}, function(fileEntry) {
        writeFile(fileEntry, fileContent, isAppend);
    }, fail);
}

function savePasswords(fileSystem) {
    createFile("/sdcard/testFolder", "testfile.txt", "TEST", true);
}

function fail(error) {
    alert("ERROR: " + error.code);
}

function request() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, savePasswords, fail);
}

document.addEventListener("deviceready", request, false);

我想用它在一个名为“testFolder”的文件夹中创建内容为“TEST”的文件“testfile.txt”。

自Android 4.4以来,SD卡根目录(
/sdcard/
)是只读的,因此您无法对其进行写入。假设示例代码中对
writeFile()
的引用引用了(因为它没有在代码中定义),则调用
fileWriter.onerror()
函数时会出现错误代码
不允许修改\u ERR

您必须写入SD卡上的应用程序存储目录(例如
/sdcard/Android/data/your.app.package.id/
)。 您可以使用
cordova插件文件
作为
cordova.file.externalApplicationStorageDirectory
引用此位置

有关不同版本Android中SD卡访问的详细信息,请参阅

注:以上提到的“SD卡”指的是模拟SD卡(在内部存储器上(即
/storage/emulated/0/
)。指的是一些Android设备中存在的外部/可移动SD卡(例如三星Galaxy S系列)无法通过
cordova插件文件执行此操作,但是您可以使用从来执行此操作。

此脚本可以:

function writeFile(fileEntry, dataObj) {
    // Create a FileWriter object for our FileEntry (log.txt).
    fileEntry.createWriter(function (fileWriter) {

        fileWriter.onwriteend = function() {
            console.log("Successful file write...");
            readFile(fileEntry);
        };

        fileWriter.onerror = function (e) {
            console.log("Failed file write: " + e.toString());
        };

        // If data object is not passed in,
        // create a new Blob instead.
        if (!dataObj) {
            dataObj = new Blob(["Content if there's nothing!"], { type: 'text/plain' });
        }

        fileWriter.write(dataObj);
    });
}

window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function (rootDirEntry) {
        rootDirEntry.getDirectory(fileDir, { create: true }, function (dirEntry) {
            var isAppend = true;
            dirEntry.getFile(fileName, { create: true }, function (fileEntry) {
                writeFile(fileEntry, "Content!", isAppend);
                // Success
            });
        });
    });

错误是什么?与我们共享logcat/stacktrace!请同时添加一些代码。@Jordan刚刚添加了我使用的代码!:)好的,还可以检查你的logcat,看看是否有任何提示/警告我该怎么做?我没有在模拟器中运行应用程序(在线编译:Cocoon.io)。我正在我的设备上运行它。@Jordan在我登录之前,代码不应该是正确的吗?我认为问题在于我的代码。一个工作脚本的例子将是完美的!