android内部外部存储卡路径的获取

很简单,就是获取外部、内部存储卡路径,不废话,具体详见代码及注释:


public enum StorageType
{
ST_Rom_DataDir, // Android Rom 中data目录
ST_Rom_AppDir, // Android Rom 中data下app可操作目录
ST_SDCard_RootDir, // 最大的SD卡的根目录
};

public static File getStorageDirectory(StorageType st)
{
File f = null;

if (st.equals(StorageType.ST_Rom_DataDir))
{
f = Environment.getDataDirectory();
}
else if (st.equals(StorageType.ST_Rom_AppDir))
{
f = XApplication.getAppContext().getFilesDir();
}
else if (st.equals(StorageType.ST_SDCard_RootDir))
{
String sysESDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String maxESDir = getMaxStorageDir();

if (maxESDir.isEmpty() || sysESDir.equals(maxESDir))
{
f = Environment.getExternalStorageDirectory();
}
else
{
f = new File(maxESDir);
}
}

return f;
}

/**
* 判断手机是否有SD卡。
*
* @return 有SD卡返回true,没有返回false。
*/
public static boolean hasSDCard()
{
// return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
{
return true;
}
else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(Environment.getExternalStorageState()))
{
return false;
}
else
{
return false;
}
}

/**
* 获取图片的本地存储路径。
*
* @return 图片的本地存储路径。
*/
public static String getPath()
{
String path = "";
// 没有sd卡存放到STRom_dataDir下
if (!hasSDCard())
{
File f = getStorageDirectory(StorageType.ST_Rom_DataDir);
path = f.getAbsolutePath();
}
else
{
File f = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
if (!f.exists())
{
// 如果没有DCIM目录, 就放到sd卡
f = Environment.getExternalStorageDirectory();
}
path = f.getPath() + "/" + "picture";
}

return path;
}

/**
* 检查sdk权限,检查默认照片存储路径是否存在,不在则创建
*
* @return
*/
public static boolean checkPath()
{
String path = getPath();
File file = new File(path);
if (!file.exists())
{
file.mkdir();
}
if (path.lastIndexOf("picture") != -1)
{
return true;
}
return false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值