gpt4 book ai didi

java - 给定一个类路径资源,有没有办法获取拥有/包含它的 java.io.File 对象?

转载 作者:行者123 更新时间:2023-11-28 23:36:03 25 4
gpt4 key购买 nike

如果我在类路径上有资源,我可以将它作为流加载,甚至还有它的 URL 表示。不幸的是,Url 的一些实现没有正确实现 lastModified。

我想要的是获取类路径中某物的路径,然后将其解析为磁盘上的文件 - 如果它在 jar 中,那么指向 jar 的文件就可以了。然后我可以从 File 对象而不是 URL 获取 lastModified,这会更有帮助。

最佳答案

粗略地说:

    URL url = this.getClass().getResource(myResource);
String fileName;
if (url.getProtocol().equals("file")) {
fileName = url.getFile();
} else if (url.getProtocol().equals("jar")) {
JarURLConnection jarUrl = (JarURLConnection) url.openConnection();
fileName = jarUrl.getJarFile().getName();
} else {
throw new IllegalArgumentException("Not a file");
}
File file = new File(fileName);
long lastModified = file.lastModified();

应该做你想做的。您将需要捕获 IOException。

关于java - 给定一个类路径资源,有没有办法获取拥有/包含它的 java.io.File 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24435819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com