zoukankan      html  css  js  c++  java
  • 团队博客9

    Android文件获取

    使用递归便利本地所有文件(txt文件、word文件、ppt文件和zip压缩文件 )

    @SuppressLint("NewApi")
    public class FileInforService {
    
    	public File path1;
        public ArrayList<FileInfor> listfile;
        public Context context;
        public ArrayList<FileInfor> lpath;
        public ArrayList<File>  afile;
        public FileInforService(Context context)
    	{
    		this.context=context;
    	}
    
        
    	/*获取所有文件信息*/
    	public ArrayList<File> getAllFileList()
    	{	
    		listfile=new ArrayList<FileInfor>();
    		afile=new ArrayList<File>();
    		File file=Environment.getExternalStorageDirectory();
    		File[] files=file.listFiles();
    		runFile(files);	
    	    return afile;
    	}
    	public void runFile(File[] file)
    	{
    		
      	     if (file != null) {  
      	          for (int i=0;i<file.length;i++) {  
      	        	  File file2=file[i];
      	        	  System.out.println(file2.toString());
      	              if (file2.listFiles() == null) {  
      	            	  System.out.println(file2.isFile());
    	            	  if(file2.isFile())
    	            	  {
    	            		  afile.add(file2);
    		              }
    	              }
      	              else
      	              { 
      	            	 final File[] newFileList=file2.listFiles();
      	            	 
      	            	 Thread thread=new Thread(){
    
    						@Override
    						public void run() {
    							// TODO Auto-generated method stub
    							 runFile(newFileList);
    						}  	            		 
      	            	 };
      	      		     thread.start(); 
      	              }
      	          }
      	     }
    	}
    }
    

                          

                              

    private ArrayList<FileInfor> getFileList()
    	{
    
    		ArrayList<File> files=new ArrayList<File>();
    		service=new FileInforService(inbox);
    		
    		files=service.getAllFileList();
    		
    		int fsize=files.size();
    		if(fsize==0)
    		{
    			return null;
    		}
    		for(int i=0;i<fsize;i++)
    		{
    			File file=files.get(i);
    			String name=file.getName();
    			int a=0;
    			if(name.endsWith("xls")||name.endsWith("xlsx")||name.endsWith("xlsm")||name.endsWith("xltm")||name.endsWith("xlsb")||name.endsWith("xlam"))
    			{
    /*				Bitmap icon=BitmapFactory.decodeResource(getResources(), R.drawable.excel);	*/
    				a=1;
    			}
    			if(name.endsWith("ppt")||name.endsWith("pptx")||name.endsWith("pptm")||name.endsWith("ppsx")||name.endsWith("potx")||name.endsWith("potm")||name.endsWith("ppam"))
    			{
    				a=2;
    			}
    			if(name.endsWith("doc")||name.endsWith("docx")||name.endsWith("docm")||name.endsWith("dotx")||name.endsWith("dotm"))
    			{
    				a=3;
    			}
    			if(name.endsWith("umd")||name.endsWith("pdf")||name.endsWith("txt")||name.endsWith("edk")||name.endsWith("chm"))
    			{
    				a=4;
    			}
    			if(name.endsWith("zip")||name.endsWith("rar")||name.endsWith("iso")||name.endsWith("7z"))
    			{
    				a=5;
    			}
    			if(a==0)
    			{
    				continue;
    			}
    		    Map<String,Object> map=new HashMap<String,Object>();
    		    String str = "文件名称:" + file.getName() + " 路径:"+ file.getPath();  
                System.out.println(str);  
                FileInfor fileInfor=new FileInfor();           
                String path=file.getAbsolutePath();
                int size=(int)file.length();         	            	  
                String fileSize=parseApkSize(size);
                long modTime=file.lastModified();
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String date=dateFormat.format(new Date(modTime));
    			map.put("name", name);
    			Toast.makeText(inbox, fileInfor.getName(),Toast.LENGTH_SHORT).show();
    			map.put("path", path);
    			map.put("date",date);
    		    map.put("size", fileSize);
    		    
    		    if(a==1)
    		    {
    		    	map.put("icon", R.drawable.excel);
    		    	listExcel.add(map);
    		    }
    			if(a==2)
    			{
    				map.put("icon", R.drawable.ppt);
    				listPpt.add(map);
    			}
    			if(a==3)
    		    {
    				map.put("icon", R.drawable.word);
    		    	listWord.add(map);
    		    }
    			if(a==4)
    			{
    				map.put("icon", R.drawable.pdf);
    				listPdf.add(map);
    			}
    			if(a==5)
    		    {
    				map.put("icon", R.drawable.zip);
    		    	listZip.add(map);
    		    }
    			
    		}
    		return null;
    	}
    	private String parseApkSize(int size) {
    		BigDecimal bd;
    		BigDecimal setScale;
    		String str=null;
    		if(size/1024>0)
    		{
    			bd=new BigDecimal((double)size/(1024));
    			setScale = bd.setScale(2, BigDecimal.ROUND_DOWN);
    			str=setScale.toString()+"KB";  
    		}
    		else
    		{
    			bd = new BigDecimal((double)size/(1024*1024));
    			setScale = bd.setScale(2, BigDecimal.ROUND_DOWN);
    			str=setScale.toString()+"M";  
    		}
    	    
    	          
    	    return str;
    	}
    

      

  • 相关阅读:
    Android CTS 测试
    Cygwin 不兼容Win7 64
    真滴有太多不懂的的东西,有点扛不住了。
    ffmpeg yasm not found, use disableyasm for a crippled build
    手机搜索不到 Connectify
    Android ICS 横竖屏切换时不销毁Activity
    MinGw\bin\ar.exe: libavcodec/: Permission denied
    Cannot complete the install because one or more required items could not be found.
    Eclipse 启动时报错 JVM terminated. Exit code=1
    【Java 从入坑到放弃】No 5. 控制流程
  • 原文地址:https://www.cnblogs.com/XJXYJ/p/5857839.html
Copyright © 2011-2022 走看看