当前位置: 代码迷 >> Android >> android 扫描文件栈溢出有关问题,自己写的扫描文件方法
  详细解决方案

android 扫描文件栈溢出有关问题,自己写的扫描文件方法

热度:7   发布时间:2016-05-01 16:27:22.0
android 扫描文件栈溢出问题,自己写的扫描文件方法
class Scaning{    	    	private ArrayList<String> list;//保存扫描的文件    	    	public List<String> queue=null;//用一个list,做法跟队列一样    	    	public Scaning(String root){    		list=new ArrayList<String>();    		queue=(List<String>) Collections.synchronizedList(new LinkedList<String>());    		queue.add(root);    	}    	public void scaning(){    		new Thread(new Runnable() {    			@Override    			public void run() {    						if(queue.size()>0){    							new Thread(new ScanThread(queue.get(0))).start();    						}    				}    		}).start();    	}    	    	    	class ScanThread implements Runnable{    		private String root;    		    		private File [] files;    		    		ScanThread(String root){    			this.root=root;    		}    		@Override    		public void run() {    			synchronized (queue) {    				if(null!=root){    					files=new File(root).listFiles();    					if(null!=files){    						for(File f:files){    							if(f.isDirectory()){    								queue.add(f.getAbsolutePath());    							}else{    								list.add(f.getAbsolutePath());    								Log.e("ScanFile",f.getAbsolutePath());    							}    						}    					}    					queue.remove(root);    					if(queue.size()>0){    						new Thread(new ScanThread(queue.get(0))).start();    					}else{    						Log.e("ScanFile","scaning finish");    					}    				}    			}    			    				    		}    	}    }
  相关解决方案