如何使用Cordova文件插件在Android/iOS设备的子目录中读写文件?

3

我正在尝试这段代码:

function onDeviceReady() {
requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {   
    alert(fileSystem.root.toURL());

    fileSystem.root.getDirectory('myDir', { create: true }, function (myDirEntry) {
        alert(myDirEntry.toURL());

        myDirEntry.getDirectory('mySubDir', { create: true }, function (mySubDirEntry) {
            alert(mySubDirEntry.toURL());
            alert('/myDir/mySubDir creation is done');

        }, getDirectoryError);
    }, getDirectoryError);      
}, requestFileSystemError);

在三星SM-G318ML上执行时,内核版本为3.10.17-983426,我收到了以下信息的警报:

file:data/data/com.mydomain.myapp/files/files/    
file:data/data/com.mydomain.myapp/files/files/myDir
file:data/data/com.mydomain.myapp/files/files/myDir/mySubDir
/myDir/mySubDir creation is done.

然而,当我查看我的设备文件系统时,除了一个名为.mtp的奇怪目录被创建在系统根目录下,我并没有发现所需的目录。我的目标是在/com.mydomain.mayapp/files/profile/images目录中创建和读取文件。 我的代码基于示例链接提供的示例; 我正在使用Cordova.File插件版本4.1.0,在Intel XDK混合应用程序项目中。我已经定义了必要的android.permission.WRITE_EXTERNAL_STORAGE权限。请问有人能指导我正确的方向吗?谢谢您的帮助。
2个回答

1

我发现另一个非常有用的文档在这里:cordova-plugin-file

根据这个文档:

cordova.file.dataDirectory - 在应用程序的沙盒中使用内部存储进行持久且私有的数据存储(在Android上,如果您需要使用外部存储,请使用.externalDataDirectory)。在iOS上,该目录不与iCloud同步(请使用.syncedDataDirectory)。 (iOS,Android,BlackBerry 10,Windows)


0

你正在编写的目录位于 data/data 文件夹内,该文件夹仅属于你的应用程序,无法通过设备文件系统访问。

如果你想使用公共文件夹,请查看此表格。

https://github.com/apache/cordova-plugin-file#android-file-system-layout

选择一个不是私有的文件夹。

例如:externalApplicationStorageDirectory

祝编码愉快!


好的Del...谢谢,但是我如何获得对externalApplicationStorageDirectory的读写访问权限?我问这个问题是因为requestFileSystem函数总是返回一个指向data/data/...的指针。还有一个问题:我被禁止在dataDirectory中写入...为什么? - Nowdeen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接