2010-11-04 24 views
18

estoy usando esto para ver si ya existe un archivo y obtener su marca de tiempo:Conseguir un archivo de fecha de última modificación

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

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

Aunque puedo ver que este archivo existe de hecho utilizando la Context.fileList () método, el código anterior siempre dice que no.

¿Cómo puedo obtener la última fecha de modificación de un archivo?

+1

¿Cuál es su problema aquí? Que file.exists() falla? – EboMike

+0

file.exists() devuelve falso. Cada vez que llamo a file.lastModified() devuelve cero. La cadena de nombre de archivo es simplemente un nombre como "miarchivo.txt" sin ninguna información de ruta. – Tom

Respuesta

11

Considero que su problema es que file.exists() falla, el problema con la fecha de modificación no tiene nada que ver con eso.

Me gustaría aventurar que la ruta que está utilizando es local para su aplicación? Tendrá que usar rutas absolutas al usar File.

+2

Fue realmente un problema de ruta. La solución fue usar Context.getFileStreamPath (fileName) para obtener el objeto File. Entonces los métodos file.exists() y file.lastModified() funcionaron bien. Gracias por el consejo. – Tom

+1

¡Me alegra ayudar! Este asunto es un escollo común. – EboMike

1

con ello a la ruta

si u enviar ruta no válida, entonces u siempre obtendrá 0 ó el 1970 algo! (porque Google estableció La fecha de inicio en esa fecha :))

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

En realidad, no fue "el Google" quien configuró esa fecha, sino más bien la naturaleza de cómo se hacen las marcas de tiempo de Unix: consulte http://en.wikipedia.org/wiki/Unix_time – PureSpider

Cuestiones relacionadas