zoukankan      html  css  js  c++  java
  • 安卓SD卡的操作

    /**
    	 * 得到常用路径
    	 */
    	public void getDir(){
    		// /mnt/sdcard
    		File root=Environment.getExternalStorageDirectory();
    		
    		// /system
    		File root=Environment.getRootDirectory();
    		
    		// /cache
    		File root=Environment.getDownloadCacheDirectory();
    		
    		// /data
    		File root=Environment.getDataDirectory();
    		
    		
    		// /storage/emulated/0/Music
    		//String type=Environment.DIRECTORY_MUSIC;
    		
    		//String type=Environment.DIRECTORY_PICTURES;
    		File root=Environment.getExternalStoragePublicDirectory(type);
    		
    		
    		System.out.println("root="+root.getAbsolutePath());
    	}
    	
    	
    	/**
    	 * 获取手机SDCard的总容量
    	 * @return
    	 */
    	public long getSDCardTotalCapacity(){
    		if(this.isSDCardUse()){
    			// /mnt/sdcard
    			File root=Environment.getExternalStorageDirectory();
    			//根据SDCard的路径得到状态文件系统对象
    			StatFs statFs=new StatFs(root.getPath());
    			
    			//得到每一块数据的大小,以字节为单位
    			long blockSize=statFs.getBlockSize();
    			System.out.println("blockSize="+blockSize);
    			
    			//得到当前手机SDCard一共有多少个数据块
    			long blockCount=statFs.getBlockCount();
    			System.out.println("blockCount="+blockCount);
    			
    			//return blockCount*blockSize;//默认以字节为单位
    			return blockCount*blockSize/1024/1024/1024;//默认以字节为单位,换算成GB
    			
    		}else{
    			throw new RuntimeException("当前手机SDCard不存在或者不可用!");
    		}
    	}
    	
    	/**
    	 * 获取手机SDCard可用容量
    	 * @return
    	 */
    	public long getSDCardAvailableCapacity(){
    		if(this.isSDCardUse()){
    			// /mnt/sdcard
    			File root=Environment.getExternalStorageDirectory();
    			//根据SDCard的路径得到状态文件系统对象
    			StatFs statFs=new StatFs(root.getAbsolutePath());
    			
    			//得到每一块数据的大小,以字节为单位
    			int blockSize=statFs.getBlockSize();
    			
    			//得到当前手机SDCard可用容量的SDCard块数
    			int availableBlocks=statFs.getAvailableBlocks();
    			
    			
    			//return availableBlocks*blockSize;//默认以字节为单位
    			return availableBlocks*blockSize/1024/1024/1024;//默认以字节为单位,换算成GB
    			
    		}else{
    			throw new RuntimeException("当前手机SDCard不存在或者不可用!");
    		}
    	}
    	
    	/**
    	 * 获取手机SDCard剩余容量
    	 * @return
    	 */
    	public long getSDCardFreeCapacity(){
    		if(this.isSDCardUse()){
    			// /mnt/sdcard
    			File root=Environment.getExternalStorageDirectory();
    			//根据SDCard的路径得到状态文件系统对象
    			StatFs statFs=new StatFs(root.getAbsolutePath());
    			
    			//得到每一块数据的大小,以字节为单位
    			int blockSize=statFs.getBlockSize();
    			
    			//得到当前手机SDCard可用容量的SDCard块数
    			int freeBlocks=statFs.getFreeBlocks();
    			
    			
    			//return freeBlocks*blockSize;//默认以字节为单位
    			return freeBlocks*blockSize/1024/1024/1024;//默认以字节为单位,换算成MB
    			
    		}else{
    			throw new RuntimeException("当前手机SDCard不存在或者不可用!");
    		}
    	}
    }
    

      

  • 相关阅读:
    织梦后台如何生成站点地图sitemap.xml
    滚轮滚动一定距离触发导航顶部固定,且所点击的关键词,背景字体变色
    超简单横向选项卡
    后台域名重定向301
    JS检测是否是360浏览器
    《深入理解Java虚拟机》-----第2章 Java内存区域与内存溢出异常
    java基础(十七)----- 浅谈Java中的深拷贝和浅拷贝 —— 面试必问
    java基础(十六)----- equals()与hashCode()方法详解 —— 面试必问
    java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的
    java基础(十四)-----详解匿名内部类——Java高级开发必须懂的
  • 原文地址:https://www.cnblogs.com/qcgAd/p/5091178.html
Copyright © 2011-2022 走看看