我試圖從我的webapp的src/main/resources目錄中的文件夾中獲取文件列表。有沒有人有辦法解決嗎 ? 所以,一個問題是,我的classpath中只有glassfish.jar。 我從哪裏可以找到入口點。 這是一個maven項目。來自src/main/resources/somefolder的JSF應用程序列表文件
問候, 霍爾格
我試圖從我的webapp的src/main/resources目錄中的文件夾中獲取文件列表。有沒有人有辦法解決嗎 ? 所以,一個問題是,我的classpath中只有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
我試圖以編程方式獲取文件名數組。 Like String [] files = getFilesFromResourcePath(「targetDirectory」); 而這些文件位於/ src/main/resources/targetDirectory中 – ITR
爲什麼你要這麼做?除非你正在編寫單元測試,否則這沒有太大意義。資源下的文件將進入war文件的根目錄。因此,如果您的應用程序部署完成後,getFilesList(「/ src/main/resources/targetDirectory」)將不起作用。 – Federico