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

Posted

技术标签:

【中文标题】使用 Cordova 递归读取所有文件和文件夹结构【英文标题】:Recursively Read all files and folder structure using Cordova 【发布时间】:2015-10-20 11:53:10 【问题描述】:

有没有办法从根目录开始递归读取文件和文件夹结构。 这里的范围是使用cordova扫描目录中存在的所有文件以及目录、子目录

【问题讨论】:

【参考方案1】:

在此处查看答案:https://***.com/a/29905718/346550。这是使用cordova文件插件。

【讨论】:

【参考方案2】:
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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于使用 Cordova 递归读取所有文件和文件夹结构的主要内容,如果未能解决你的问题,请参考以下文章

递归读取制定目录下所有文件夹和文件的实现(java)

php 递归读取文件夹内所有文件报错

Java递归读取文件路径下所有文件名称并保存为Txt文档

递归读取目录文件下的所有文件

Linux Shell之递归读取指定目录下的所有文件

Python递归文件夹读取