Моя программа проверяет, существует ли определенный файл в папке кэша по умолчанию.Если файл существует, он открывает его и читает содержимое.Если файл не существует, файл извлекается из Интернета и сохраняется в папке кэша.У меня проблема в том, что независимо от того, находится файл в папке кэша или нет, мой тест файла всегда возвращает false.Самое смешное, что, хотя проверка файла возвращает false, я все равно могу открыть файл из папки кэша и прочитать его.Я могу вытащить список файлов в папке кэша, и я вижу, что файл там, но когда я делаю тест файла, чтобы увидеть, есть ли файл, он возвращает ложь, хотя я знаю, что файл есть, и я могуоткройте его и посмотрите его содержимое.
Я попытался выполнить обычный тест exist () и даже прочитал каждый файл в каталоге кэша один за другим и сравнил имя с файлом, который я ищу, и все еще возвращает false.
Спасибо за любую помощь заранее!
String file = "test.txt"
String content = "testing";
putFile(file, content);
Boolean fileIsThere = checkFile(file);
public Boolean checkFile(String file){
Boolean fileExists = false;
// regular file test - always returns false, even if the file is there
File f = new File(file);
if (f.exists())
fileExists = true;
// comparing each individual file in the directory - also returns false
String[] dirFiles = fileList();
for (int i = 0; i < dirFiles.length; i++) {
if (dirFiles[i] == file){
fileExists = true;
break;
}
}
return fileExists;
}
public void putFile(String file, String content){
try {
FileOutputStream fos = openFileOutput(file, Context.MODE_PRIVATE);
fos.write(content.getBytes());
fos.close();
} catch (Exception e) {
Log.w("putFile", "Error (" + e.toString() + ") with: " + file);
}
}
Есть идеи?Я думаю, что, поскольку я помещаю файлы в папку кеша, я всегда получаю ложь при проверке файлов.Я просто хочу посмотреть, сталкивался ли кто-нибудь еще с этим и имеет ли исправление, или мне нужно создать конкретный каталог и хранить там свои файлы, или что-то еще.Может ли "Context.MODE_PRIVATE" в putFile () иметь к этому какое-либо отношение?