【发布时间】:2016-03-07 07:52:16
【问题描述】:
问题
是否可以确定任意类路径资源的大小?这是下面的假设构建(完全披露:我不是谷歌)。在这种情况下,我想获取 icon.png 的大小。
- 源
- com
- 谷歌
- App.java
- icon.png
- app.json
- 谷歌
- com
我知道我可以使用它的 URI(来自类路径 URL)从这个资源创建一个路径/文件并获取它的大小。
Files.size(Path.get(ClassLoader.getSystemResource(iconPath).toURI()))
但据我了解,当我将其部署在 JAR 中或使用 AOT 编译工具(例如 Excelsior JET)时,这将不起作用。
注意:在这两种情况下(Excelsior 或 JAR)我都可以正常加载 icon.png。
只是为了澄清。我的目标是不从给定资源中获取文件!目标是获取资源的大小。以上只是一个错误解决方案的示例。
原因
在运行时加载许多资源时获取准确的进度信息。
将当前进度从当前处理的字节数等于要处理的总字节数。
TL;DR我只需要有人告诉我这是不可能的,以便我想出一个不同的解决方案。
【问题讨论】:
标签: java classpath classloader