看不到使用cordova-file插件存储在Android设备上的文件

看不到使用cordova-file插件存储在Android设备上的文件,android,cordova,cordova-plugins,cordova-plugin-file,Android,Cordova,Cordova Plugins,Cordova Plugin File,我试图在cordova应用程序中显示android设备上存储的文件列表,并且我正在使用cordova-file插件。但是,当我在应用程序中选择浏览按钮时,我没有看到文件,但我在系统“我的文件”android应用程序中看到了文件 这是我正在迭代的文件夹列表 [cordova.file.externalRootDirectory,cordova.file.dataDirectory] 在android手机上,我看到文件正在执行以下操作: 选择/设置/存储/内部存储 选择探索 在emnu上,标题

我试图在cordova应用程序中显示android设备上存储的文件列表,并且我正在使用cordova-file插件。但是,当我在应用程序中选择浏览按钮时,我没有看到文件,但我在系统“我的文件”android应用程序中看到了文件

这是我正在迭代的文件夹列表

[cordova.file.externalRootDirectory,cordova.file.dataDirectory]
在android手机上,我看到文件正在执行以下操作:

  • 选择/设置/存储/内部存储

  • 选择探索

  • 在emnu上,标题显示MyFiles>设备存储

  • 选择数据或下载

    在设备上 cordova.file.externalRootDirectory解析为file:///storage/emulated/0/download

  • 但是,我没有看到任何文件

    这是我的密码

    $scope.showLocalFileOnAndroid = function () {
                $scope.showLocalAndroidFiles = true;
                var localURLs = [cordova.file.externalRootDirectory,cordova.file.dataDirectory
                                ];
                var index = 0;
                var i;
                var errorStr = '';
                var fileList = [];
                var addFileEntry = function (entry) {
                    var dirReader = entry.createReader();
                    dirReader.readEntries(
                        function (entries) {
    
                            var i;
                            for (i = 0; i < entries.length; i++) {
                                if (entries[i].isDirectory === true) {
                                    // Recursive -- call back into this subdirectory
                                    addFileEntry(entries[i]);
                                } else {
                                    var ext = entries[i].name.split('.').pop();
                                    if (ext === 'doc' || ext === 'docx' ||
                                        ext === 'rdf' || ext === 'pdf' || ext === 'txt' ||
                                        ext === 'odt') {
    
                                        fileList.push(entries[i]); // << replace with something useful
                                    }
                                    index++;
                                }
                            }
                        },
                        function (error) {
                            console.log('readEntries error: ' + error.code);
                            errorStr += '<p>readEntries error: ' + error.code + '</p>';
                        }
                    );
                };
                var addError = function (error) {
                    console.log('getDirectory error: ' + error.code);
                    errorStr += '<p>getDirectory error: ' + error.code + ', ' + error.message + '</p>';
                };
                for (i = 0; i < localURLs.length; i++) {
                    if (localURLs[i] === null || localURLs[i].length === 0) {
                        continue; // skip blank / non-existent paths for this platform
                    }
                    window.resolveLocalFileSystemURL(localURLs[i], addFileEntry, addError);
                }
                $scope.fileList = fileList;
                $scope.localFileError = errorStr;
            };
    
    $scope.showLocalFileOnAndroid=函数(){
    $scope.showLocalAndroidFiles=true;
    var localURLs=[cordova.file.externalRootDirectory,cordova.file.dataDirectory
    ];
    var指数=0;
    var i;
    var errorStr='';
    var fileList=[];
    var addFileEntry=函数(条目){
    var dirReader=entry.createReader();
    dirReader.readEntries(
    功能(条目){
    var i;
    对于(i=0;icordova
    插件那样在设备之间可移植

    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
    
    var localURLs = [cordova.file.externalRootDirectory,
                     cordova.file.dataDirectory, 
                     "file:///Download"]; // or "file:///sdcard/Download" or "file:///storage/Download" or "file:///storage/download" or something
    
    我用作参考

    也许您所缺少的只是对
    requestFileSystem
    的调用。也许您必须这样做。不过,这可能不像使用
    cordova
    插件那样可在设备之间移植

    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
    
    var localURLs = [cordova.file.externalRootDirectory,
                     cordova.file.dataDirectory, 
                     "file:///Download"]; // or "file:///sdcard/Download" or "file:///storage/Download" or "file:///storage/download" or something
    
    我用作参考


    也许您所缺少的只是对
    requestFileSystem

    的调用,这里可能重复了未回答的问题:谢谢..我看到了答案,并复制了一些代码,但是,它不起作用..设备上的文件存储在“Internal Storage\root\sdcard\Download”中代码中没有任何路径定义引用此路径这似乎是一个常见问题,与Cordova和下载文件夹有关。可能不是问题,但您在
    LocalURL
    数组中有
    Cordova.file.dataDirectory
    两次。我看不出原因,我删除了重复的URL。它没有通过正确的android Phone中的文件夹可能与此处的未回答问题重复:谢谢..我看到了答案,并复制了一些代码,但是它不起作用..设备上的文件存储在“Internal Storage\root\sdcard\Download”中代码中没有任何路径定义引用此路径这似乎是一个常见问题,与Cordova和下载文件夹有关。可能不是问题,但您在
    LocalURL
    数组中有
    Cordova.file.dataDirectory
    两次。我看不出原因,我删除了重复的URL。它没有通过正确的android手机中的文件夹谢谢,但它对我不起作用。这就是我正在尝试做的,我有一个html标记输入类型文件,我正在尝试在设备上列出该文件,,,在某些版本的android上,我看到一个系统文件选择器,但我不知道如何获取所选文件…因此,我决定阅读android文件夹。现在我不确定如何处理我在android上降级到API 22,现在我能够读取该文件…不确定发生了什么事..谢谢,但它对我不起作用..这就是我正在尝试做的,我有一个html标记输入类型文件,我试图在设备上列出该文件,,,,在某些版本的android上,我看到一个系统文件选择器,但我不知道如何操作获取所选文件…因此,我决定读取android文件夹..现在我不确定如何处理我在android上降级到API 22,现在我能够读取文件..不确定发生了什么。。