Android获取SDcard目录及创建文件夹的方法

获取sdcard目录

 public static String getSDPath() {
    File sdDir = null;
    boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);// 判断sd卡是否存在
    if (sdCardExist) {
      sdDir = Environment.getExternalStorageDirectory();// 获取跟目录
    }
    return sdDir.toString();
  }

创建目录,不限目录层级

public static String mkdirs(String path) {
    String sdcard = getSDPath();
    if (path.indexOf(getSDPath()) == -1) {
      path = sdcard + (path.indexOf("/") == 0 ? "" : "/") + path;
    }
    File destDir = new File(path);
    if (!destDir.exists()) {
      path = makedir(path);
      if (path == null) {
        return null;
      }
    }
    return path;
  }

  private static String makedir(String path) {
    String sdPath = getSDPath();
    String[] dirs = path.replace(sdPath, "").split("/");
    StringBuffer filePath = new StringBuffer(sdPath);
    for (String dir : dirs) {
      if (!"".equals(dir) && !dir.equals(sdPath)) {
        filePath.append("/").append(dir);
        File destDir = new File(filePath.toString());
        if (!destDir.exists()) {
          boolean b = destDir.mkdirs();
          if (!b) {
            return null;
          }
        }
      }
    }
    return filePath.toString();
  }

所需权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 在sdcard中创建/删除文件的权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

显示本地图片

ImageView view5 = findView(R.id.imageview2);
view5.setImageBitmap(ImageUtils.getLoacalBitmap("/storage/sdcard1/myimage/20160807.jpg"));

public static Bitmap getLoacalBitmap(String url) {
    try {
       FileInputStream fis = new FileInputStream(url);
       return BitmapFactory.decodeStream(fis);
    } catch (FileNotFoundException e) {
       //这里应显示默认图片,如图片无法显示等;从应用资源图片中选取
       return null;
    }
  }

以上这篇Android获取SDcard目录及创建文件夹的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Android按时间先后顺序获取目录下文件列表

    本文实例为大家分享了Android按时间先后顺序获取文件列表的具体代码,供大家参考,具体内容如下 /** * 获取目录下所有文件(按时间排序) * * @param path * @return */ public static List<File> listFileSortByModifyTime(String path) { List<File> list = getFiles(path, new ArrayList<File>()); if (list != nu

  • Android获取本机各种类型文件的方法

    介绍 本篇介绍Android获取本机各种类型文件的方法,已经封装成工具类,末尾有源码下载地址. 提示 获取音乐.视频.图片.文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文件中声明SD卡读取权限即可:如果是6.0或以上,则需要动态申请权限. FileManager的使用 FileManager是封装好的用于获取本机各类文件的工具类,使用方式如:FileManager.getInstance(Context context).getMusics(),使用的是单例模式创建

  • Android中Java根据文件头获取文件类型的方法

    本文实例讲述了Android中Java根据文件头获取文件类型的方法.分享给大家供大家参考,具体如下: 前面讲过Android系统内部的MediaFile类来获取文件类型的办法,这个类主要是根据文件的扩展名来判断,其准确性不是很好.具体可查看Android系统使用MediaFile类判断音频文件类型.其实,获取文件类型最好的办法便是根据文件头信息来判断.下面贴出相关代码: public class FileType { public static final HashMap<String, Str

  • Android获取手机文件夹及文件列表的方法

    先看看效果图: package wuwang.tools.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Comparator; import

  • Android获取SDcard目录及创建文件夹的方法

    获取sdcard目录 public static String getSDPath() { File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);// 判断sd卡是否存在 if (sdCardExist) { sdDir = Environment.getExternalStorageDirectory(

  • C#实现判断文件夹存在与否并创建文件夹的方法

    本文实例讲述了C#实现判断文件夹存在与否并创建文件夹的方法.分享给大家供大家参考,具体如下: protected void Button1_Click(object sender, EventArgs e) { if (Directory.Exists(Server.MapPath("~/upimg/hufu")) == false)//如果不存在就创建file文件夹 { Directory.CreateDirectory(Server.MapPath("~/upimg/hu

  • 详细总结Java创建文件夹的方法及优缺点

    一.传统API创建文件夹方式 Java传统的IO API种使用java.io.File类中的file.mkdir()和file.mkdirs()方法创建文件夹 file.mkdir()创建文件夹成功返回true,失败返回false.如果被创建文件夹的父文件夹不存在也返回false.没有异常抛出. file.mkdirs()创建文件夹连同该文件夹的父文件夹,如果创建成功返回true,创建失败返回false.创建失败同样没有异常抛出. @Test void testCreateDir1() { //

  • PHP mkdir创建文件夹实现方法解析

    在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其它不是那样,单个的MKDIR只能创建一级目录,对于多级的就不行了,那如何用mkdir来创建呢?先我抄一段手册上的有关mkdir的描述,如下: 说明 bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] ) 尝试新建一个由 pathname 指定的目录. 注意也许想用八进制数指定模式,也就是说该

  • bat根据当前日期创建文件夹的方法

    为了不等路也能复制copy,所以编辑博客的时候这个没有放到代码块里,也黏贴下:: 设置CMD显示的编码格式为UTF-8(防止中文乱码)chcp 65001 :: @echo off 表示不回显执行的命令@echo off ::一定要看下当前日期的格式,不同的windows系统,打印的当前时间格式可能不一样(这样的年月日截取的开始位置就不一样),防止被坑set ORIGINAL_DATE=%date%echo %ORIGINAL_DATE% :: 日期截取遵从格式 %date:~x,y%,表示从第

  • Android Studio 合并module到统一文件夹的方法

    在同一项目中,引用了多个module,长短不一的命名显得比较乱, 这里想把引入的module放到统一的目录,方便管理 在项目中新建一个文件夹 1.先正常导入module到项目中 2.把导入的module拖入到新建好的文件夹中 3.打开setting.gradle 在里面映射路径 完成! 下面看下android studio关于同名资源文件的合并 最近在开发过程中遇到了一个问题,在调整一个背景drawable文件的时候发现修改内容没有生效. 各种查找问题之后发现是由于另外一个模块内存在同名资源文件

  • linux Shell获取某目录下所有文件夹的名称

    查看目录下面的所有文件: #!/bin/bash cd /目标目录 for file in $(ls *) do echo $file done 延伸的方法,查看目录下面的所有目录 #!/bin/bash cd /export/bak/original_document for dir in $(ls split*) do [ -d $dir ] && echo $dir #先判断是否是目录,然后再输出 done

  • python根据txt文本批量创建文件夹

    前言 前言:想写这个代码的原因是因为实习的时候需要根据表格名创建对应的文件夹,如果只是很少个数文件夹的话,ctrl+shift+n还可以接受吧,可是一次就要创建几百个文件夹,这就有点方方了.所以我写了一些代码解决实际的问题吧. 正文 正文:其实这是一个简单的代码集合,然后就实现了 代码目录结构 │ 创建文件夹.py ├─docs │ try.txt └─folder 第一个文件自然就是代码的位置:try.txt是存的所有要生成的文件夹名称列表,是直接从excel表格获取复制粘贴的,编码格式utf

  • Python创建文件夹与文件的快捷方法

    前言 Python快捷创建文件夹和文件详解 自己做文件时发现  简单的反复操作十分浪费时间,于是想到了 使用Python,这个分享给大家,快捷高效办公. 项目目录 file11 创建文件夹 file22 创建文件 1.创建文件夹 # 批量 创建文件夹 import os #倒入OS模块 创建文件夹 需要的 # 保存路径,直接从电脑文件夹中复制过来,但是 # 注意,直接复制过来的C:\English\LETS\雅思听力 路径结尾是没斜杠的. # 路径是需要 斜杠结尾的,否则 会以LETS为根目录,

  • springboot创建文件夹失败的解决

    目录 springboot创建文件夹失败 springboot日志目录创建失败 springboot创建文件夹失败 今天用idea写springboot工程,明明在idea中创建了两个文件夹 可是当用图标一步步打开时却发现没有mapper和model文件夹 最后发现该项目在桌面,idea没有写权限,需要使用管理员模式打开idea,问题得解. springboot日志目录创建失败 遇到启动项目出现日志目录创建失败的问题 第一种可能,你的如下图箭头所指位置中没指定启动的配置文件,导致项目启动找不到你

随机推荐