1***@qq.com
1***@qq.com
  • 发布:2016-11-14 16:31
  • 更新:2016-11-14 16:31
  • 阅读:1610

io 操作安卓手机文件系统

分类:HTML5+
IO
想通过遍历安卓文件系统,来获取手机所有mp3文件。  
```javascript  

<script type="text/javascript">
var count=0;
// 扩展API加载完毕后调用onPlusReady回调函数
document.addEventListener( "plusready", onPlusReady, false );
//扩展API加载完毕,现在可以正常调用扩展APIcursor.close();
function onPlusReady() {
plus.io.resolveLocalFileSystemURL( "/sdcard", function(fs){
// fs.root是根目录操作对象DirectoryEntry
// 创建读取目录信息对象
// var directoryReader = fs.createReader();
findMP3(fs);

},function(){  
    alert("打开失败");  
} );  

}
function findMP3(fs){
if(plus.android.invoke(fs,"isHidden")){
return;
}
if(fs.isDirectory){

 var directoryReader=fs.createReader();  
    directoryReader.readEntries( function( entries ){  
        var i;  
        var li=null;  
        if(entries.length==0){  
            return;  
        }  
        for( i=0; i < entries.length; i++ ) {  

            if(entries[i].isDirectory){  
                findMP3(entries[i]);  
            }  
            if(entries[i].isFile){  
                var reg=/.mp3$/;  
        if(reg.test(entries[i].name)){  
            count++;  
            li=document.createElement("li");  
            li.innerText=count+"   "+entries[i].fullPath;  
            li.className="mui-table-view-cell";  
            document.getElementById("ul").appendChild(li);  
        }  
        }  
        }  
    }, function ( e ) {  
        alert( "Read entries failed: " + e.message );  
    } );  

}else{//过滤掉不是mp3的文件格式
var reg=/.mp3$/;
if(!reg.test(entries[i].name)){
count++;
li=document.createElement("li");
li.innerText=count+" "+fs.fullPath;
li.className="mui-table-view-cell";
document.getElementById("ul").appendChild(li);
}

}
}
</script>



这个代码可以遍历我手机内存的所有mp3文件格式,但时间太长,而且会栈溢出错误。  
请问,还可以怎么优化,求大神给个思路~~~~~~~~
2016-11-14 16:31 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复