获取文件的最后修改日期不是Java中的最后创建日期
我已将一个文件复制到我的android设备上。当我用file.lastModified()检查它的上次修改日期时,它返回刚刚创建文件的日期。我想要文件上次修改而不是复制的原始日期。我可以在windows资源管理器中看到此日期,标记日期已修改。file.lastModified()与文件的创建日期标记匹配。如果我能得到上次修改的日期,我可以在文件更新后通过检查日期用服务器上的另一个文件更新该文件。但是使用created date是不可能的。我使用java中的ApacheTika获得了文档的创建日期 这是我的java代码,用于获取文档的创建日期:获取文件的最后修改日期不是Java中的最后创建日期,java,android,file,last-modified,datecreated,Java,Android,File,Last Modified,Datecreated,我已将一个文件复制到我的android设备上。当我用file.lastModified()检查它的上次修改日期时,它返回刚刚创建文件的日期。我想要文件上次修改而不是复制的原始日期。我可以在windows资源管理器中看到此日期,标记日期已修改。file.lastModified()与文件的创建日期标记匹配。如果我能得到上次修改的日期,我可以在文件更新后通过检查日期用服务器上的另一个文件更新该文件。但是使用created date是不可能的。我使用java中的ApacheTika获得了文档的创建日期
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
这是文件的创建日期和时间。我不熟悉Android的怪癖;您是否从java.nio.file.Files.getLastModifiedTime()得到不同的结果?是java.io吗?这里我指的文件是SD卡上的一个文件,它是使用file file=new file(Environment.getExternalStorageDirectory(),“test.xml”)创建的。我不能使用您提到的方法。有点困惑-调用file.lastModified()的程序是否在Android设备上运行?还检查设备上文件的lastModified()?当您说Windows资源管理器正确显示文件的修改日期时,我们是说服务器上的文件吗?是的,它在android设备上运行,并且正在检查设备上文件的lastModified()。windows资源管理器显示设备中而非服务器中文件的正确修改日期。但是当我使用file.lastmodified()方法时,它返回的是创建的日期,而不是我在windows中看到的上次修改的日期,即原始修改的日期date@user2049132不,我的意思是nio,但是java.nio.file.*不在Java6中,只有7个。我找不到让ApacheTika工作的方法。我将ApacheTika的jar文件添加到java类路径库中。我还应该做什么?我正在使用eclipse在ubuntu中工作,因此在java构建路径中添加tika jar文件。我必须使用maven做什么吗?找不到类org.apache.tika.parser.Autodetectparser在运行时发生错误。Eclipse没有显示代码有任何问题,但这发生在运行时。您要传递哪个文件?