2010-11-04 4 views
18

Я использую это, чтобы увидеть, если файл уже существует, и получить его метку времени:Получение файла Дата последнего изменения

File file = new File(getResources().getString(R.string.file_name)); 

if (file.exists()) { 
    Date lastModified = new Date(file.lastModified()); 
} 

Несмотря на то, что я могу видеть, что этот файл действительно существует, используя Context.fileList (), код выше всегда говорит, что нет.

Как я могу получить последнюю измененную дату файла?

+1

В чем проблема? Ошибка файла file.exists()? – EboMike

+0

file.exists() возвращает false. Всякий раз, когда я вызываю file.lastModified(), он возвращает ноль. Строка имени файла - это просто имя «myfile.txt» без какой-либо информации о пути. – Tom

ответ

11

Я понимаю, что ваша проблема в том, что ошибка file.exists(), проблема с измененной датой не имеет к этому никакого отношения.

Я бы рискнул, что путь, который вы используете, является локальным для вашего приложения? Вам необходимо использовать абсолютные пути при использовании File.

+2

Это действительно проблема пути. Решением было использование Context.getFileStreamPath (имя_файла) для получения объекта File. Затем методы file.exists() и file.lastModified() работали нормально. Спасибо за совет. – Tom

+1

Рад помочь! Эта путаница - обычная ловушка. – EboMike

1

Используйте это для пути

если и отправить неверный путь, то и всегда получите 0 или 1970 что-то! (поскольку Google установил дату начала на эту дату :))

File file = new File(this.getFilesDir().getAbsolutePath() + "/file1.jpg"); 
+8

На самом деле это не «Google», установивший эту дату, а характер того, как создаются временные метки unix - см. Http://en.wikipedia.org/wiki/Unix_time – PureSpider

Смежные вопросы