Android如何使用Environment.getExternalStorageDirectory()
我如何使用Environment.getExternalStorageDirectory()
从SD卡读取存储的图像还是有更好的方法来做到这一点?
Environment.getExternalStorageDirectory().getAbsolutePath()
为您提供SDCard的完整path。 然后,您可以使用标准Java执行正常的文件I / O操作。
下面是写一个文件的简单例子:
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); String fileName = "myFile.txt"; // Not sure if the / is on the path or not File f = new File(baseDir + File.separator + fileName); f.write(...); f.flush(); f.close();
编辑:
糟糕 – 你想要一个阅读的例子…
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); String fileName = "myFile.txt"; // Not sure if the / is on the path or not File f = new File(baseDir + File.Separator + fileName); FileInputStream fiStream = new FileInputStream(f); byte[] bytes; // You might not get the whole file, lookup File I/O examples for Java fiStream.read(bytes); fiStream.close();
请记住, getExternalStorageDirectory()不能在一些手机上正常工作,比如我的摩托罗拉razr maxx,因为它有2个卡/ mnt / sdcard和/ mnt / sdcard-ext – 尊重内部和外部SD卡。 你将得到/ mnt / sdcard每次只回复。 Google必须提供一种处理这种情况的方法。 因为它使许多SD卡感知应用程序(即卡备份)在这些电话上失败悲惨。
如文档Environment.getExternalStorageDirectory()中所述 :
Environment.getExternalStorageDirectory()返回主共享/外部存储目录。
这是一个如何使用它读取图像的例子:
String fileName = "stored_image.jpg"; String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); String pathDir = baseDir + "/Android/data/com.mypackage.myapplication/"; File f = new File(pathDir + File.separator + fileName); if(f.exists()){ Log.d("Application", "The file " + file.getName() + " exists!"; }else{ Log.d("Application", "The file no longer exists!"; }
- 如何将String 转换为ArrayList <String>
- 如何在一个父RecyclerView里面有一个ListView / RecyclerView?
- 调用setCompoundDrawables()不会显示Compound Drawable
- Android上最好的REST客户端框架/实用工具
- ViewPager PagerAdapter不更新视图
- 意图 – 如果活动正在运行,把它放在前面,否则启动一个新的(从通知)
- 日志标记最多可以是23个字符
- 找不到com.google.android.gms:play-services:3.1.59 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.89 5.2.08 6.1。 11 6.1.71 6.5.87
- 删除ListView分隔符(在xml布局文件中)