/** * 得到常用路径 */ 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不存在或者不可用!"); } } }
时间: 2024-10-17 15:36:53