我有一个Netbeans maven项目,并且正在使用src/main/resources
文件夹在正在编写的程序旁边部署我的图片和一个帮助文件。
根据我对主题的理解,此文件夹中的所有文件(以及包含它们的软件包)都存储在Netbeans IDE生成的.jar
文件中。我已经通过在压缩文件提取程序中打开jar来验证了这一点。
这便于部署,以前,我遇到版本控制问题,有些图片已经过时,因为我以前使用磁盘上的文件夹来存放图片文件夹。
我有一个子例程,可从pictures文件夹中选择一个随机图片,但是在jar文件中实现此功能与我对主题的理解相冲突。
如果picture文件夹现在位于jar存档中,如何将Path
个对象获取到这些文件?我知道我可以使用Clazz.class.getResource("/pictures")
将URL对象获取到文件夹。我还可以将此URL转换为URI,并将其提供给File
构造函数,并使用getPath
获取磁盘上此文件夹的路径。
然后我可以致电Files.list(picturesPath)
;获取路径列表并选择一个随机路径。
如果文件/文件夹只是磁盘上的常规文件/文件夹 ,则此过程会很好地运行 ,但是它们不是,它们位于压缩文件中jar存档。这使我感到困惑。
我是否可以将以Path
形式获得的这些文件夹视为典型文件夹,并以处理常规文件夹的典型方式来处理它们?是否有工作上的技术手段来实现这种无缝连接?或者我的假设中是否存在一些细微的谬误,以至于我无法使用Files.list(picturesPath)
之类的东西?