Почему мой file.exists () всегда возвращает false? - PullRequest
0 голосов
/ 19 июля 2011

Я сохраняю фотографию, сделанную камерой, вот так:

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 ]

2 голосов
/ 19 июля 2011

Наиболее очевидная причина - «потому что ее там нет».

Я отмечаю, что ваш код создает файл в «текущем каталоге» и ищет файл в контексте приложения.Видимо, они не то же самое место.Почему бы просто ...

FileOutputStream out = new FileOutputStream(
        getApplicationContext().getFileStreamPath("img_example"));
0 голосов
/ 19 июля 2011

Как сказано в документации Android :

getFileStreamPath(String name)

Возвращает абсолютный путь в файловой системе, где хранится файл, созданный с помощью openFileOutput (String, int).

Почему бы не написать свой файл с помощью метода openFileOutput ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...