2017-03-06 7 views
3

私の問題は、私は、画像を知っていれば、私は(知っている プロジェクト/ srcに/メイン/ webappの/画像にタペストリー5.4リストのwebappフォルダからのすべての画像

に位置している私は、すべての画像を一覧表示したいということであり、 S)名(複数可)私はこのようなURLを行うことができます。

assetSource.getContextAsset(IMAGESLOCATION + imageName, currentLocale).toClientURL(); 

しかし、私は、すべての画像の名前を知らない場合は?

事前にお返事ありがとうございます!

答えて

3

ウェブアプリケーション(とタペストリーも)はどこにでも展開できるため、ファイルの絶対パスを知らない/気にしません。 HttpServletRequestのgetRealPathを呼び出すと、ファイルの絶対パスを取得できます。 HttpServletRequestをの

@Inject 
    private HttpServletRequest request; 
    ... 
    // get root folder of webapp 
    String root = request.getRealPath("/"); 
    // get abs path from any relative path 
    String abs = root + '/' + relPath; 

getRealPathは、推奨されません、代わりにServletContext.getRealPathを使用することをお勧めしますが、それはのServletContextを取得するのは簡単ではありません。

私はWebApplicationInitializer実装

public class AbstractWebApplicationInitializer implements WebApplicationInitializer { 


    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     // Here we store ServletContext in some global static variable 
     Global.servletContext = servletContext; 
     .... 
    } 
+0

ありがとう!できます。 :) – LakiGeri

0

基本的には、指定したフォルダ内のファイルを読む必要があります。

File folder = new File("your/path"); 
File[] listOfFiles = folder.listFiles(); 

for (int i = 0; i < listOfFiles.length; i++) { 
    if (listOfFiles[i].isFile()) { 
    System.out.println("File " + listOfFiles[i].getName()); 
    } 
    // else, it's a directory 
} 

輸入のすべてがjava.iopackageから次のようになります。ここでは、フォルダ内のすべてのファイルを反復処理しますいくつかの非常に基本的なコードです。

+1

こんにちはを使用することを好みます! 応答のための@Duskoに感謝します。あなたのような同様のコードを書いていますが、getContextAssetが相対パスを扱うことができるが、絶対パスは変換できないという主な問題点があります。例えば私がこれを行うとき: \t \t 'String path = assetSource.getContextAsset(IMAGESLOCATION + imageName、currentLocale).getResource()。getFolder(); \t \tファイルファイル=新しいファイル(パス)。 \t \t System.out.println(Arrays.toString(file.list())); nullが返されますが、画像とフォルダが存在します。 – LakiGeri

関連する問題