如何为cordova app创建一个单独的目录并在其中存储数据?

Har*_*ish 5 javascript jquery jquery-mobile cordova cordova-plugins

我想为我的cordova项目创建一个特定的目录.我不知道该怎么做.我提到所以可能链接, 如何将文件移动到应用程序目录cordova

cordova,android app如何创建子文件夹 和其他一些链接.但目前尚不清楚他们是否正在使用任何cordova插件,或者我们可以使用纯javascript.这些对我不起作用.如果有任何插件或功能,请建议.

谢谢.

eri*_*ola 5

您需要使用这个插件:https://www.npmjs.com/package/cordova-plugin-file

我不知道你使用的是哪个版本的 cordova 以及这个插件是否已更新,但是当我使用它时,它不适用于 WindowsPhone。适用于 Android 和 iOS。

获取文件系统:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, downloadFile, fileSystemFail);
Run Code Online (Sandbox Code Playgroud)

下载文件功能:

downloadFile: function(fileSystem){
    // your code
}
Run Code Online (Sandbox Code Playgroud)

创建目录:

var directoryEntry = fileSystem.root;
var folderName = "Folder";

directoryEntry.getDirectory(folderName, { create: true, exclusive: false }, onDirectorySuccess, onDirectoryFail);
Run Code Online (Sandbox Code Playgroud)

其中onDirectorySuccessonDirectoryFail是这样的函数:

onDirectorySuccess: function(parent){
    console.log(parent);
},
onDirectoryFail: function(error){
    console.log("Unable to create new directory: " + error.code);
}
Run Code Online (Sandbox Code Playgroud)

获取目录中文件的路径:

var filePath = directoryEntry.toURL() + "/" + folderName + "/" + fileName;
Run Code Online (Sandbox Code Playgroud)

并获取文件:

directoryEntry.getFile(folderName + "/" + fileName, { create: true, exclusive: false }, onFileSuccess, onFileFail);
Run Code Online (Sandbox Code Playgroud)

要首先删除文件,您需要获取它:

directoryEntry.getFile(folderName + "/" + fileName, { create: true, exclusive: false }, onFileSuccessRemove, onFileFail);
Run Code Online (Sandbox Code Playgroud)

然后在成功函数中:

function onFileSuccessRemove(entry) {
    entry.remove();
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序具有文件下载功能,因此这是将文件保存在目录中的代码:

var fileTransfer = new FileTransfer();
fileTransfer.download(URL, filePath, downloadComplete, downloadFail, true);
Run Code Online (Sandbox Code Playgroud)

这不是你的情况,但我希望它有帮助。