、.ear
、.jar
および.war
パッケージがあります。ファイルシステムを調べてマッピングを登録することで、サーブレットクラスを動的に読み取っています。
問題は、開発用に機能することです。ディレクトリを読み取ることができ、適切なファイル名でマッピングを作成できます。問題は、耳をパッケージ化すると機能しないことです。
- 新しいものを使う
File( ... ).isDirectory()
- ディレクトリにいるかどうかを確認するには、有効なディレクトリ パスに対して常に false を返します。
- 新しいものを使う
File( ... ).listFiles()
- ディレクトリからファイルを一覧表示できるようにするには、常に
null
有効なディレクトリ パスを返します。
- ディレクトリからファイルを一覧表示できるようにするには、常に
拡張子で終わらないエンド パスを検出することでディレクトリ チェックの問題を解決しました (私の目的では、そのような検証で十分です) が、特定のパスからファイルを一覧表示することはまだできません。
この状況を考えると、私は質問があります:
パッケージから実行時にファイル名を一覧表示するにはどうすればよい.war
ですか?
現在のコード:
private void addAllFiles( File dir, ArrayList<ConventionPath> list ) {
for ( File file : dir.listFiles() ) { // dir.listFiles() comes null here =/
String absolutePath = file.getAbsolutePath();
boolean isActionDir = ConventionFiles.isActionDir( absolutePath, fileSeparator );
boolean isActionFile = ConventionFiles.isActionFile( absolutePath );
if ( isActionDir ) {
addAllFiles( file, list );
}
if ( isActionDir || isActionFile ) {
ConventionPath conventionPath =
new ConventionPath( absolutePath, fileSeparator );
list.add( conventionPath );
}
}
}