精华内容
下载资源
问答
  • Android用 Environment.getExternalStorageDirectory() 方法获取 SD 卡的路径 , 卡存储空间大小及已占用空间获取方法 : /* 获取存储卡路径 */ File sdcardDir=Environment.getExternalStorageDirectory(); /*...

    Android用 Environment.getExternalStorageDirectory() 方法获取 SD 卡的路径 , 卡存储空间大小及已占用空间获取方法 :

      /* 获取存储卡路径 */ 
     File sdcardDir=Environment.getExternalStorageDirectory(); 
     /*StatFs 看文件系统空间使用情况 */ 
     StatFs statFs=new StatFs(sdcardDir.getPath()); 
     /*Block 的 size*/ 
     Long blockSize=statFs.getBlockSize(); 
     /* 总 Block 数量 */ 
     Long totalBlocks=statFs.getBlockCount(); 
     /* 已使用的 Block 数量 */ 
     Long availableBlocks=statFs.getAvailableBlocks(); 


    展开全文
  • 获取sd路径

    2014-02-17 16:33:32
    获取sd路径,区别于传统方式。不需要配置权限。
  • Android获取SD card路径

    千次阅读 2017-03-06 17:28:22
    Android获取SD card路径

    在写应用时,有时候需要获取SD card的路径,这涉及到SD card状态判断、路径信息获取等。

    对应的示例代码如下:

        .............
        private static final String APP_PATH_NAME = "Transfer";
    
        public static String createDir() {
            //获取路径
            String path = getSdRootDir();
    
            //判断状态
            if (Environment.getExternalStorageState()
                    .equals(Environment.MEDIA_MOUNTED)) {
                String newPath = path + File.separator + APP_PATH_NAME;
    
                File f = new File(newPath);
                if (!f.exists()) {
                    if (f.mkdirs()) {
                        return newPath;
                    }
                }
            }
    
            return path;
        }
    
        public static String getSdRootDir() {
            return Environment.getExternalStorageDirectory().getPath();
        }
        ...........

    此外,利用StorgeManager也可以获取SD card的信息,可参考链接

    展开全文
  • Android小程序,可以测试手机是否有SD卡,并获取SD路径和手机存储路径显示。
  • 这篇文章主要介绍了Android获取SD路径及SDCard内存的方法,较为详细的分析了Android针对SD卡操作所涉及的类及其具体函数功能,非常具有实用价值,需要的朋友可以参考下本文实例讲述了Android获取SD路径及SDCard内存...

    这篇文章主要介绍了Android获取SD卡路径及SDCard内存的方法,较为详细的分析了Android针对SD卡操作所涉及的类及其具体函数功能,非常具有实用价值,需要的朋友可以参考下

    本文实例讲述了Android获取SD卡路径及SDCard内存的方法。分享给大家供大家参考。具体分析如下:

    昨天在研究拍照后突破的存储路径的问题,开始存储路径写死为: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); 后来发现这样写虽然一般不会出错,但不是很好,因为不同相机,可能路径会出问题。较好的方法是通过Environment 来获取路径,最后给出一个例子,教你怎样获取SDCard 的内存,显示出来告诉用户。讲述的内容如下:

    0、获取sd卡路径。 1、讲述 Environment 类。 2、讲述 StatFs 类。 3、完整例子读取 SDCard 内存

    0、获取sd卡路径

    方法一:

    代码如下:

    private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); //写死绝对路径,不赞成使用

    方法二:

    代码如下:

    publicString getSDPath(){

    File sdDir= null;boolean sdCardExist =Environment.getExternalStorageState()

    .equals(android.os.Environment.MEDIA_MOUNTED);//判断sd卡是否存在

    if(sdCardExist)

    {

    sdDir= Environment.getExternalStorageDirectory();//获取跟目录

    }returnsdDir.toString();

    }

    然后:在后面加上斜杠,在加上文件名

    代码如下:

    String fileName = getSDPath() +"/" + name;//以name存在目录中

    1、讲述 Environment 类

    Environment 是一个提供访问环境变量的类。

    Environment 包含常量:

    MEDIA_BAD_REMOVAL

    解释:返回getExternalStorageState() ,表明SDCard 被卸载前己被移除

    MEDIA_CHECKING

    解释:返回getExternalStorageState() ,表明对象正在磁盘检查。

    MEDIA_MOUNTED

    解释:返回getExternalStorageState() ,表明对象是否存在并具有读/写权限

    MEDIA_MOUNTED_READ_ONLY

    解释:返回getExternalStorageState() ,表明对象权限为只读

    MEDIA_NOFS

    解释:返回getExternalStorageState() ,表明对象为空白或正在使用不受支持的文件系统。

    MEDIA_REMOVED

    解释:返回getExternalStorageState() ,如果不存在 SDCard 返回

    MEDIA_SHARED

    解释:返回getExternalStorageState() ,如果 SDCard 未安装 ,并通过 USB 大容量存储共享 返回

    MEDIA_UNMOUNTABLE

    解释:返回getExternalStorageState() ,返回 SDCard 不可被安装 如果 SDCard 是存在但不可以被安装

    MEDIA_UNMOUNTED

    解释:返回getExternalStorageState() ,返回 SDCard 已卸掉如果 SDCard 是存在但是没有被安装

    Environment 常用方法:

    方法:getDataDirectory()

    解释:返回 File ,获取 Android 数据目录。

    方法:getDownloadCacheDirectory()

    解释:返回 File ,获取 Android 下载/缓存内容目录。

    方法:getExternalStorageDirectory()

    解释:返回 File ,获取外部存储目录即 SDCard

    方法:getExternalStoragePublicDirectory(String type)

    解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件

    方法:getExternalStorageState()

    解释:返回 File ,获取外部存储设备的当前状态

    方法:getRootDirectory()

    解释:返回 File ,获取 Android 的根目录

    2、讲述 StatFs 类

    StatFs 一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况

    StatFs 常用方法:

    getAvailableBlocks()

    解释:返回 Int ,获取当前可用的存储空间

    getBlockCount()

    解释:返回 Int ,获取该区域可用的文件系统数

    getBlockSize()

    解释:返回 Int ,大小,以字节为单位,一个文件系统

    getFreeBlocks()

    解释:返回 Int ,该块区域剩余的空间

    restat(String path)

    解释:执行一个由该对象所引用的文件系统

    3、完整例子读取 SDCard 内存

    存储卡在 Android 手机上是可以随时插拔的,每次的动作都对引起操作系统进行 ACTION_BROADCAST,本例子将使用上面学到的方法,计算出 SDCard 的剩余容量和总容量。代码如下:

    代码如下:

    1 packagecom.terry;2 importjava.io.File;3 importjava.text.DecimalFormat;4 importandroid.R.integer;5 importandroid.app.Activity;6 importandroid.os.Bundle;7 importandroid.os.Environment;8 importandroid.os.StatFs;9 importandroid.view.View;10 importandroid.view.View.OnClickListener;11 importandroid.widget.Button;12 importandroid.widget.ProgressBar;13 importandroid.widget.TextView;14 importandroid.widget.Toast;15 public class getStorageActivity extendsActivity {16 privateButton myButton;17 /**Called when the activity is first created.*/

    18 @Override19 public

    20 voidonCreate(Bundle savedInstanceState) {21 super.onCreate(savedInstanceState);22 setContentView(R.layout.main);23 findView();24 viewHolder.myButton.setOnClickListener(newOnClickListener() {25 @Override26 public

    27 voidonClick(View arg0) {28 //TODO Auto-generated method stub

    29 getSize();30 }31 });32 }33 voidfindView(){34 viewHolder.myButton=(Button)findViewById(R.id.Button01);35 viewHolder.myBar=(ProgressBar)findViewById(R.id.myProgressBar);36 viewHolder.myTextView=(TextView)findViewById(R.id.myTextView);37 }38 voidgetSize(){39 viewHolder.myTextView.setText("");40 viewHolder.myBar.setProgress(0);41 //判断是否有插入存储卡

    42 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){43 File path =Environment.getExternalStorageDirectory();44 //取得sdcard文件路径

    45 StatFs statfs=newStatFs(path.getPath());46 //获取block的SIZE

    47 long blocSize=statfs.getBlockSize();48 //获取BLOCK数量

    49 long totalBlocks=statfs.getBlockCount();50 //己使用的Block的数量

    51 long availaBlock=statfs.getAvailableBlocks();52 String[] total=filesize(totalBlocks*blocSize);53 String[] availale=filesize(availaBlock*blocSize);54 //设置进度条的最大值

    55 int maxValue=Integer.parseInt(availale[0])56 *viewHolder.myBar.getMax()/Integer.parseInt(total[0]);57 viewHolder.myBar.setProgress(maxValue);58 String Text="总共:"+total[0]+total[1]+"/n"

    59 +"可用:"+availale[0]+availale[1];60 viewHolder.myTextView.setText(Text);61 }else

    62 if(Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)){63 Toast.makeText(getStorageActivity.this, "没有sdCard",1000).show();64 }65 }66 //返回数组,下标1代表大小,下标2代表单位 KB/MB

    67 String[] filesize(longsize){68 String str="";69 if(size>=1024){70 str="KB";71 size/=1024;72 if(size>=1024){73 str="MB";74 size/=1024;75 }76 }77 DecimalFormat formatter=newDecimalFormat();78 formatter.setGroupingSize(3);79 String result[] =new String[2];80 result[0]=formatter.format(size);81 result[1]=str;82 returnresult;83 }84 }

    展开全文
  • Android获取sd路径

    千次阅读 2015-06-24 18:00:10
    Android中包括两个sd卡路径,一个是内置sd卡路径,一个是外置sd卡路径。由于Android手机系统的可定制性,每个厂商出厂的...内置sd路径String sdCardPath = Environment.getExternalStorageDirectory().getAbsolutePath

    Android中包括两个sd卡路径,一个是内置sd卡路径,一个是外置sd卡路径。由于Android手机系统的可定制性,每个厂商出厂的手机系统存在差异。获取到的sd卡路径也存在差异。所有的手机都支持内置sd卡,但是并不都支持外置sd卡。

    内置sd路径

    String sdCardPath = Environment.getExternalStorageDirectory().getAbsolutePath();

    外置sd卡路径

        /**
         * 获取外置SD卡路径
         * @return  路径列表
         */
        public static List<String> getAllExtraSdcardPath() {
            List<String> sdList = new ArrayList<String>();
            try {
                Runtime runtime = Runtime.getRuntime();
                Process process = runtime.exec("mount");
                InputStream is = process.getInputStream();
                InputStreamReader isr = new InputStreamReader(is);
                String line;
                BufferedReader br = new BufferedReader(isr);
                while ((line = br.readLine()) != null) {
                    // 将常见的linux分区过滤掉
                    if (line.contains("secure") || line.contains("asec")
                            || line.contains("system")
                            || line.contains("cache") || line.contains("sys")
                            || line.contains("data") || line.contains("tmpfs")
                            || line.contains("shell") || line.contains("root")
                            || line.contains("acct") || line.contains("proc")
                            || line.contains("misc") || line.contains("obb")) {
                        continue;
                    }
                    if (line.contains("fat") || line.contains("fuse")
                            || line.contains("ntfs") || line.contains("extSdCard")) {
                        String columns[] = line.split(" ");
                        if (columns != null && columns.length > 1) {
                            String path = columns[1];
                            if (path != null && !sdList.contains(path)
                                    && path.toLowerCase().contains("sd"))
                                File file = new File(path);
                                if (file.isDirectory()){//判断是否是文件夹
                                    sdList.add(columns[1]);
                                }
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return sdList;
        }

    测试结果

    该程序目前只在华为 GEM-703L和三星note3上测试过,测试结果为:

    华为

    内置:/storage/emulated/0 
    外置:/storage/sdcard1

    三星

    内置:/storage/emulated/0 
    外置:/storage/extSdCard

    因为目前手头上只有这两个支持外置sd卡,其他型号手机没法测试。后续有机会测试的话,再更新。

    展开全文
  • 安卓SD路径获取

    2017-11-08 22:55:32
    安卓SD路径获取 今天把一张图片扔到SD卡里,然后去获取文件,就是拿不到。后来想了下,我把图片放到了我自己插入的拓展卡里,然后获取的路径是安卓自带的内存路径,所以读取的文件为空。然后我又把图片重新拷贝了...
  • Android 通过反射获取外置SD路径 Android 通过反射获取外置SD路径 Android 通过反射获取外置SD路径
  • 本文实例讲述了Android获取SD路径及SDCard内存的方法。分享给大家供大家参考。具体分析如下: 昨天在研究拍照后突破的存储路径的问题,开始存储路径写死为: private String folder = “/sdcard/DCIM/Camera/”...
  • 获取SD路径

    2017-04-06 15:14:00
    public static String getSDPath(){File sdDir = null;boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在if (sdCardExist){sdDi...
  • 主要介绍了Android编程获取SD路径及剩余容量的方法,涉及Android针对SD卡的状态判断,路径获取及容量计算等相关技巧,需要的朋友可以参考下
  • android获取sd路径

    2013-12-20 19:02:04
    android获取sd路径方法: public String getSDPath(){ File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否...
  • * 获取内置SD路径 * @return */ public String getInnerSDCardPath() { return Environment.getExternalStorageDirectory().getPath(); } /** * 获取外置SD路径 * @return 应该就一条记录或空 */ ...
  • /** * 6.0获取外置sdcard和U盘路径,并区分 * * @param mContext * @param keyword * SD = “内部存储”; EXT = “SD卡”; USB = “U盘” * @return SD路径 */ public static St
  • Android设备获取存储卡路径的源程序,高于3.2版本时,用getVolumePaths通过反射获取,否则通过System.getenv("SECONDARY_STORAGE")获取,再通过查询剩余空间确定是否插有SD
  • android获取sd路径方法: 不建议直接写死android sd卡的路径。 public String getSDPath(){ File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os....
  • android获取sd路径方法: 不建议直接写死android sd卡的路径。  public String getSDPath(){ File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os....
  • android新手,最近在学习 搜索sd卡上的所有txt文件并将其放入listview中显示,加载的过程中界面上会显示一个progress dialog。在之前的手机(Android5.0 android4.4)上都能正常的搜索到,但最近新换了一个手机(6.0) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 936
精华内容 374
关键字:

获取sd路径