3

Java リソースの最終変更時刻を取得する必要があります。私が使うとき

url.openConnection().getLastModified()

jar全体の最終変更時刻を返します(内部のすべてのアイテムで同じ)が、特定のファイルの変更時刻が必要です。情報はそこにあります (jar を zip として開くと、特定のファイルで正しい時刻が表示されます)。誰かがそれにアクセスする方法を知っていますか?

ありがとう

4

2 に答える 2

1

おそらく、JarInputStream を使用して JAR コンテンツを照会する必要があります。
エントリを反復処理し、ZipEntryのオブジェクトを取得します。
ZipEntry のアクセサ メソッドの 1 つに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 ファイルを操作するための soem ユーティリティ メソッドも作成しました。

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 に答える