我想将图像插入到我的SD卡中。所以我使用下面的代码
m_cImagePath =“/ sdcard /”+ String.format(“%d.jpg”,System.currentTimeMillis());
FileOutputStream lObjOutStream = null;
try {
lObjOutStream = new FileOutputStream(m_cImagePath);
if (null != lObjOutStream && null != finalBitmap) {
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 85, lObjOutStream);
lObjOutStream.close();
}catch(FileNotFoundException fe){
fe.printStackTrace();
}
有时即使我的SD卡有内存也会给FileNotFoundException。当我再次从sdcard中删除一些图像时,它运行顺畅。为什么这个Happend?我怎么知道该文件已成功插入SDCard并且Java1中是否有任何功能。 5知道SDCard的可用空间如java 1.6吗?我怎么知道插入SDCard之前没有的文件长度(我在谷歌搜索并发现
“当文件不在物理位置时 然后file.length()总是给出0“
)。但在插入之前我想知道文件的长度。然后将这个空间与可用的SDCard空间进行比较很简单。
注意:我有想法使用Unix命令
df sdcard
使用
运行时类
找到SDCard空间。
请在这个问题上给我一个想法。
此致 Android开发人员
答案 0 :(得分:2)
永远不要永远不要永远不要在Android应用程序中硬编码/sdcard
。首先,它在Android 2.2+上是错误的。其次,它在其他设备上也是错误的。始终使用Environment.getExternalStorageDirectory()
作为外部存储的根目录。
Java1.5中是否有任何功能可以知道SDCard的可用空间,如java 1.6?
android.os.StatFs
有你需要的东西。