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不存在或者不可用!");
    		}
    	}
    }
    

      

  • 相关阅读:
    随笔 祝我快乐
    .NET设计模式单件模式(Singleton Pattern)
    随笔 缘分
    随笔 雨季
    数据库设计中的小经验
    一个字节造成的巨大性能差异——SQL Server存储结构
    随笔 淡淡的幸福
    用LINQ还是NHibernate?
    随笔 风筝
    FreeStyle Wishes
  • 原文地址:https://www.cnblogs.com/qcgAd/p/5091178.html
Copyright © 2011-2022 走看看