3

我需要获取 java 资源的最后修改时间。当我使用

url.openConnection().getLastModified()

它返回整个 jar 的最后修改时间(内部所有项目都相同),但我需要特定文件的修改时间。信息就在那里(当我以 zip 格式打开 jar 时,我会在特定文件中看到正确的时间)。有人知道如何访问它吗?

谢谢

4

2 回答 2

1

您可能需要使用 JarInputStream 查询 JAR 内容。
您将遍历条目,并获取ZipEntry的对象。
ZipEntry 的访问器方法之一是getTime
我相信这是您正在寻找的方法。

于 2012-11-19T10:10:53.137 回答
0

尝试类似:

try (FileSystems jarFS = FileSystems.newFileSystem(URI.create("jar:" + jarURI), Collections.<String, Object>emptyMap())){
    Path resourcePath = jarFS.getPath(resourcePathString); 
    FileTime fileTime = Files.getLastModifiedTime(resourcePath);
}

我还使用 NIO 文件 API 编写了一些实用程序方法来处理 Jar 文件:

http://softsmithy.sourceforge.net/lib/0.2/docs/api/softsmithy-lib-core/org/softsmithy/lib/nio/file/JarFiles.html

该库是开源的。

马文:

<dependency>  
    <groupId>org.softsmithy.lib</groupId>  
    <artifactId>softsmithy-lib-core</artifactId>  
    <version>0.2</version>   
</dependency> 
于 2012-11-19T10:38:14.397 回答