webappのsrc/main/resourcesディレクトリにあるフォルダからファイルのリストを取得しようとしています。誰にも解決策がありますか? 1つの問題は、クラスパスにglassfish.jarだけがあることです。 私はどこから始めることができるのエントリポイントが見つかりません。 これはmavenプロジェクトです。これまでsrc/main/resources/somefolderのJSFアプリケーションリストファイル
よろしく、 ホルガー
webappのsrc/main/resourcesディレクトリにあるフォルダからファイルのリストを取得しようとしています。誰にも解決策がありますか? 1つの問題は、クラスパスにglassfish.jarだけがあることです。 私はどこから始めることができるのエントリポイントが見つかりません。 これはmavenプロジェクトです。これまでsrc/main/resources/somefolderのJSFアプリケーションリストファイル
よろしく、 ホルガー
ソリューション: 動作しますが、あるため、絶対パスでは、私を満たしていません。
org.apache.commons.io.FileUtilsが含まれている必要があります。
public Collection<File> queryResourceFileCollectionByDirectoryMember(Class clazz, String resourcePathToMember, String[] extensions) {
logger.info("------- FileTools : queryResourceFileCollectionByDirectoryMember");
try {
//String[] extensions = {"xml"};
URL resourceURL = clazz.getResource(resourcePathToMember);//"/fields/testOITM.xml" <- one XML file in the /src/main/resources/fields/ folder to get the absolutepath which after deployment is WEB-INF/classes/fields
String resourcePath = resourceURL.getPath();
//Remove the leading slash
String resourcePathWithoutFirstChar = resourcePath.substring(1);
logger.log(Level.INFO, "------- FileTools : queryResourceFileCollectionByDirectoryMember: resourcePath :{0} :", resourcePathWithoutFirstChar);
File resourceFileToGetDirectory = new File(resourcePathWithoutFirstChar);
String resourceDirectoryPath = resourceFileToGetDirectory.getParent() + File.separator; //"c:/Users/xuser/Documents/NetBeansProjects/BOneBApp/target/classes/"
File resourceDirectory = new File(resourceDirectoryPath);
Collection<File> files = FileUtils.listFiles(resourceDirectory, extensions, true);
return files;
} catch (Exception e) {
logger.log(Level.SEVERE, "******* FileTools : queryResourceFileCollectionByDirectoryMember : {0}", e.getMessage());
return null;
}
}
clazzには、webappの任意のクラスを使用できます。
よろしく、あなたはここで後にしているものを ホルガー
全くわかりません。あなたはこれをプログラム的に、あるいは単なるものとしてやりたいのですか?後者の場合は、pkzipなどでwarファイルを開き、その中にナビゲートすることができます。 – DaveRlz
私は、プログラムでファイル名の配列を取得しようとしています。 String []のようにファイル= getFilesFromResourcePath( "targetDirectory"); これらのファイルは/ src/main/resources/targetDirectoryにあります – ITR
なぜそれが欲しいですか?ユニットテストを書いていない限り、これはあまり意味がありません。リソースの下のファイルは、warファイルのルートディレクトリに移動します。したがって、getFilesList( "/ src/main/resources/targetDirectory")は、アプリケーションのデプロイ後は機能しません。 – Federico