2012-05-04 36 views
2

クラスパス内のファイルのリストを取得しようとしていますが、SpringはClassPathResourcesの代わりにFileSystemResourcesのResource []を返しています。ここでは、コードは次のようになります。返された配列は、絶対パスファイルの束であるSpringはClassPathResourceの代わりにFileSystemResourceを返します

context.getResources("classpath*:my/package/**/*.xml"); 

:// URLを、私が本当にしたいことは、クラスパスであるとき、私はまた、これを試してみた

PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); 
Resource [] resources = resolver.getResources("classpath*:my/package/**/*.xml"); 

:URL。私は間違って何をしていますか?

これは私が最終的に構築するために探していますものです:

/my/package/one.xml 
/my/package/two.xml 

は、代わりに私はこれを取得しています:

file:/C:/eclipse/.../my/package/one.xml 
+2

なぜ気になりますか?一般的な 'Resource'インターフェースを使うのではなく、' classpath: 'リソースに依存するのはなぜですか? – skaffman

+0

"file:/ C:/ eclipse /.../ my/package/one.xml"しかし、このURLはどこにありますか?返されるリソースの実装タイプは何ですか?接頭辞file:をURLに持つclasspathリソースを持つことができるためです。キーワードclasspathは春のためのものです。 – chalimartines

答えて

0

FileSystemResourceとClassPathResourceの両方が絶対リソースパスを返します。 FileSystemResourceはファイルシステムC:/eclipse/.../my/package/one.xmlでそれを探します。 ClassPathResourceは、/WEB-INF/classesの中のクラスパスファイル上のリソースを探します。私はあなたがなぜ返品classpath:pathを必要とするのか理解できませんが、依然としてあなたの絶対パスを部分文字列で得ることができます。

関連する問題