将图像插入SD卡时出现FileNotFoundException

时间:2010-12-31 07:11:45

标签: android

我想将图像插入到我的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开发人员

1 个答案:

答案 0 :(得分:2)

永远不要永远不要永远不要在Android应用程序中硬编码/sdcard。首先,它在Android 2.2+上是错误的。其次,它在其他设备上也是错误的。始终使用Environment.getExternalStorageDirectory()作为外部存储的根目录。

  

Java1.5中是否有任何功能可以知道SDCard的可用空间,如java 1.6?

android.os.StatFs有你需要的东西。