为什么我的file.exists()总是返回false?

时间:2011-07-19 10:55:43

标签: java android image android-intent android-image

我存储了相机拍摄的照片,如下所示:

FileOutputStream out = new FileOutputStream("img_example");
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);

在onCreate()方法(同一个活动/文件)中,我检查文件是否存在,但我必须做错了,因为它没有进入下面的测试:

file = getApplicationContext().getFileStreamPath("img_example");
if(file.exists()) 
{
    //doesn't go in here
}

我怀疑这与我给出的路径或上下文有关。


背景资料: 我实际上有3个不同的上述代码实例。在file.exists()测试中,我在“拍摄图像”按钮旁边显示一个勾号。最后,我想要在另一个活动中检索图像但是现在我只想检查它是否存在

2 个答案:

答案 0 :(得分:2)

最明显的原因是“因为它不存在”。

我注意到您的代码正在“当前目录”中创建文件,并在应用程序上下文中查找该文件。显然他们不是同一个地方。为什么不呢......

FileOutputStream out = new FileOutputStream(
        getApplicationContext().getFileStreamPath("img_example"));

答案 1 :(得分:0)

正如android documentation中所述:

getFileStreamPath(String name)

返回存储使用openFileOutput(String,int)创建的文件的文件系统的绝对路径。

为什么不使用openFileOutput()方法编写文件?