【问题标题】:How can I read/write files in Android/iOs devices subdirectories using Cordova File Plugin?如何使用 Cordova 文件插件读取/写入 Android/iOs 设备子目录中的文件?
【发布时间】:2016-09-04 05:36:11
【问题描述】:

我正在尝试这段代码:

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 目录中创建和读取文件。我的代码基于 Sample Link Followed 中提供的示例(在页面末尾);我在英特尔 XDK 混合应用程序项目中使用 Cordova.File 插件,版本 4.1.0。
我已定义必要的android.permission.WRITE_EXTERNAL_STORAGE 权限。

有人能指出我正确的方向吗?欢迎所有建议...提前致谢。

【问题讨论】:

    标签: android ios file cordova plugins


    【解决方案1】:

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

    根据本文档:

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

    【讨论】:

      【解决方案2】:

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

      如果您想使用公用文件夹,请查看此表

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

      并选择一个非私有文件夹。

      例如:externalApplicationStorageDirectory

      编码愉快!

      【讨论】:

      • 好的 Del... 谢谢,但我如何才能在 externalApplicationStorageDirectory 中获得读/写权限?我问你,因为 requestFileSystem 函数总是返回一个指向 data/data/ 的指针......还有一个问题:我是否禁止在 dataDirectory 中写入......为什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      • 2016-07-05
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 2018-03-19
      相关资源
      最近更新 更多