2010-11-04 137 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 2010-11-04 23:04:36

+0

file.exists()返回false。每当我调用file.lastModified()时,它都会返回零。文件名字符串只是一个名称,如“myfile.txt”,没有任何路径信息。 – Tom 2010-11-04 23:24:21

回答

11

我认为你的问题是file.exists()失败,与修改日期的问题与它无关。

我敢打赌,你使用的路径是你的应用程序的本地?使用File时,您需要使用绝对路径。

+2

这确实是一个路径问题。解决方案是使用Context.getFileStreamPath(fileName)来获取File对象。然后file.exists()和file.lastModified()方法工作正常。谢谢你的提示。 – Tom 2010-11-04 23:41:15

+1

很高兴帮助!这种行为是一个常见的陷阱。 – EboMike 2010-11-04 23:44:10

1

用这个路径

如果你寄无效的路径则u总是会得到0或1970年的东西! (因为Google设置了开始日期到那个日期:))

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

实际上,这并不是设定该日期的“Google”,而是unix时间戳的性质 - 请参阅http://en.wikipedia.org/wiki/Unix_time – PureSpider 2013-10-07 16:57:51

相关问题