递归使用Cordova读取所有文件和文件夹结构

时间:2015-10-20 11:53:11

标签: angularjs cordova phonegap-plugins ngcordova

有没有办法从root开始递归地读取文件和文件夹结构。 这里的范围是使用cordova

扫描目录中的所有文件以及目录,子目录

3 个答案:

答案 0 :(得分:2)

在这里看一下答案:https://stackoverflow.com/a/29905718/346550。这是使用cordova文件插件。

答案 1 :(得分:0)

scan : function(url,fileType,callback)
        {
             var fileTypeCollection = [];
             var defer = $q.defer();


                url.forEach(function(element, index) 
                {
                //requestLocalFileSystemURL
                log(element);
                window.resolveLocalFileSystemURL(element,onRequestFileSystem, fail);


                log("Ends resolve");
                });


            function onRequestFileSystem(fileSystem) 
            {
                var directoryReader = fileSystem.createReader();
                directoryReader.readEntries(onReadEntries,fail);
            } /*onRequestFile Ends*/

            function onReadEntries(entries) 
            {


                if(entries.length==0)
                {
                     log("Entries Length....Resolving");
                     defer.resolve(fileTypeCollection);
                }
                else
                {   
                    entries.forEach( function(element, index) 
                    {

                        if (element.isDirectory === true) 
                        {
                        // Recursive -- call back into this subdirectory

                         onRequestFileSystem(element);
                        } 

                        if(element.isFile == true) 
                        {

                                fileType.forEach(function(type)
                                {
                                    if(element.name.indexOf(type) != -1)
                                    {
                                        fileTypeCollection.push(element);
                                    }
                                }); 
                        } /*is File ENds*/
                    });  /*Entries For Each Ends*/
                }   

            }  /*OnRead Ends*/

            function fail(resp)
            {
                log(resp);
                defer.reject();
            }  /*Fail Ends*/

        return defer.promise;

    }  //Scan Function Ends

答案 2 :(得分:0)

看看。这个插件可以根据文件类型扫描文件

https://github.com/siddmegadeth/Cordova-Media-Scanner