首页 > 移动平台 > 详细

Android获取机身存储、内置SD卡与外置TF卡路径

时间:2015-04-30 21:53:24      阅读:272      评论:0      收藏:0      [点我收藏+]

获取机身存储路径(可以通过openFileInput,openFileOutput进行操作)

String path=Environment.getDataDirectory().getAbsolutePath();返回/data

获取内置SD卡路径:

public String getStorageDir(){
    	 if(!(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))){
    		 return "";
    	 }
    	 File dirFile=Environment.getExternalStorageDirectory();
    	 Log.d(TAG, dirFile.getAbsolutePath());
    	 return dirFile.getAbsolutePath();
    }

返回/storage/emulated/o

获取外置TF卡路径:

思路:通过linux中的mount命令。

public String getTFDir(){
		String path="";
		try {
			InputStream ins=Runtime.getRuntime().exec("mount").getInputStream();
			BufferedReader reader=new BufferedReader(new InputStreamReader(ins));
			String line="";
			while((line=reader.readLine())!=null){
				if(line.contains("sdcard")){
					if(line.contains("vfat")||line.contains("fuse")){
						String split[]=line.split(" ");
						path=split[1];
						Log.d(TAG,path);

					}
				}
			}
			reader.close();
			ins.close();
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			
		}
		return path;
	}
返回/storage/sdcard1这就是我们想要的路径。

获取可用空间

public static long getAvailableSize(String path){
    try{
        File base = new File(path);
    StatFs stat = new StatFs(base.getPath());
    long nAvailableCount = stat.getBlockSize() * ((long) stat.getAvailableBlocks());
    return nAvailableCount;
    }catch(Exception e){
    e.printStackTrace();
    }
    return 0;
    }
返回bytes单位的大小。





Android获取机身存储、内置SD卡与外置TF卡路径

原文:http://blog.csdn.net/xbynet/article/details/45399041

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!