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

      

  • 相关阅读:
    Java 基础入门随笔(6) JavaSE版——数组操作
    Java 基础入门随笔(5) JavaSE版——函数重载
    Java 基础入门随笔(4) JavaSE版——程序流程控制
    Java 基础入门随笔(3) JavaSE版——逻辑运算符、位运算符
    jvm第二章(二)
    jvm第二章(一)
    jvm第一章(三)
    jvm第一章(二)
    jvm第一章(一)
    Java程序初始化的顺序是怎样的?
  • 原文地址:https://www.cnblogs.com/qcgAd/p/5091178.html
Copyright © 2020-2023  润新知