浅谈android获取存储目录(路径)的几种方式和注意事项
通常,我们创建文件/目录,或者存储图片什么的,我们都需要拿到手机的存储路径,现在我们就来看一下获取手机存储路径的几种方式(作为工具类方法调用即可):
第一种:获取/storage/emulated/0
publicstaticbooleansdCardIsAvailable(){ //首先判断外部存储是否可用 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ Filesd=newFile(Environment.getExternalStorageDirectory().getPath()); Log.e("qq","sd="+sd);//sd=/storage/emulated/0 returnsd.canWrite(); }else{ returnfalse; }
第二种:获取/storage/emulated/0(类似上面)
publicStringgetSDPath(){ FilesdDir=null; //判断sd卡是否存在 booleansdCardExist=Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED); if(sdCardExist){ sdDir=Environment.getExternalStorageDirectory();//获取根目录 Log.e("qq","外部存储可用..."+sdDir.toString()); } returnsdDir.toString(); } //使用 privatevoidsaveInRoot(){ if(getSDPath()!=null){ //StringfileName=getSDPath()+"/"; //Filefile=newFile(fileName,"123111");//参数 //if(!file.mkdir()){ //Toast.makeText(ExternalStoreActivity.this,"目录已存在...",Toast.LENGTH_SHORT).show(); //}else{ //Toast.makeText(ExternalStoreActivity.this,"创建新目录...",Toast.LENGTH_SHORT).show(); //} } }
以上两种获得的路径,其实就是系统的根目录,比如我的手机是华为荣耀6,就在本地->内部存储这个路径下
第三种:获取手机指定目录
注意:我怀疑必须先知道该手机是否存在这个目录才能获取因为不能保证每个手机自带目录都同样
所以使用前最好查看手机是否具有该路径
publicFilegetAlbumStorageDir(StringfileName){ //Getthedirectoryfortheuser'spublicpicturesdirectory. //在Environment.DIRECTORY_DOWNLOADS目录下创建名为fileName的文件夹刷新查看 Filefile= newFile(Environment.getExternalStoragePublicDirectory(Environment. DIRECTORY_DOWNLOADS),fileName);//参数2是文件名称 //mkdirs()可以创建多级目录 //mkdir()只能创建一级目录 if(!file.mkdir()){ Log.e(LOG_TAG,"Directorynotcreated"); Toast.makeText(ExternalStoreActivity.this,"目录已存在...",Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(ExternalStoreActivity.this,"创建新目录...",Toast.LENGTH_SHORT).show(); } returnfile; }
最后,需要注意的是,如果我们获取的最终路径是String类型的,那么,现在有个需求:在aaaa路径下存放一张xx.png的图片
实现:
存储路径应该是:aaaa+"/"+xx.png,如果没加上"/",那么最终得到的图片是:aaaaxx.png
当然,如果你不想加"/",也很简单,保证你的路径是File类型的即可
以上这篇浅谈android获取存储目录(路径)的几种方式和注意事项就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。