2013-08-07 61 views
1

我已将文件复制到我的Android设备。当我用file.lastModified()检查它的最后修改日期时,它会返回刚才创建的文件的日期。我希望文件上次修改时的原始日期不被复制。我可以在标签Date修改的windows资源管理器中看到这个日期。file.lastModified()与文件的Date创建标签匹配。如果我可以得到最后一次修改日期,我可以通过检查日期更新文件,并通过服务器上的另一个文件进行更新。但创建日期是不可能的。获取文件的最后修改日期而不是Java中最后创建的日期

+0

我不熟悉Android的怪癖;你从java.nio.file.Files.getLastModifiedTime()得到不同的结果吗? –

+0

它是java.io?我在这里提到的文件是在我的SD卡上使用File file = new File(Environment.getExternalStorageDirectory(),“test.xml”)创建的文件我无法使用您提到的方法 – user2049132

+0

有点困惑 - 是您的程序调用文件.lastModified()在Andrioid设备上运行?它是否也检查设备上文件的lastModified()?当你说Windows资源管理器显示正确的文件修改日期,那么我们在谈论躺在服务器上的文件? –

回答

2

我得到了在Java

这里使用阿帕奇蒂卡文件的创建日期是我Java代码来获得的文件创建日期:此代码的

public class tikaExample { 

    public static void main(String[] args) throws SAXException, TikaException { 
     InputStream is = null; 

     try { 
      is = new BufferedInputStream(new FileInputStream(new File("/home/rahul/Downloads/darknet5.doc"))); 

      Parser parser = new AutoDetectParser(); 
      BodyContentHandler handler = new BodyContentHandler(); 

      Metadata metadata = new Metadata(); 

      parser.parse(is, handler, metadata, new ParseContext()); 
      System.out.println("creation date "+metadata.get(Metadata.CREATION_DATE)); 
      System.out.println("last modify date "+metadata.get(Metadata.LAST_MODIFIED));   
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

输出是:

creation date 2002-10-16T05:45:00Z 
last modify date 2013-07-01T05:12:00Z 

th at是创建文件的日期和时间。

+0

我无法找到一种方法来使apache tika工作。我将apache tika的jar文件添加到java classpath库中。我还应该做什么 – user2049132

+0

我在ubuntu中使用eclipse工作,所以在java构建路径中添加tika jar文件。 –

+0

我是否必须对maven做任何事情? – user2049132