2012-04-11 26 views
-2

我想知道我怎麼能修改這個很好的例子,處理在這裏找到:Netty的,更新的代碼示例HttpStaticFileServerHandler也返回目錄列表,當一個目錄URL指定

https://github.com/netty/netty/blob/master/example/src/main/java/io/netty/example/http/file/HttpStaticFileServerHandler.java

也提供能力返回文件的目錄列表?目前它只會提供文件,如果確切的路徑和文件的名稱被指定,我想修改它,使我可以指定一個基本路徑,並獲得路徑上的文件列表

感謝您的任何想法或想法

+0

鏈接現已死亡,因爲主站不再存在,但正如我在下面回答的問題沒有任何意義,如果鏈接無論如何更新。 – 2016-03-23 22:32:02

+3

我投票結束這個問題作爲題外話,因爲它不清楚死鏈接。 – 2016-03-24 03:17:39

回答

2

您可以嘗試在#126行插入以下內容。

if (file.isDirectory()) { 
    String[] contents = file.list(); 
    StringBuilder sb = new StringBuilder(); 
    for (String name: contents) { 
     sb.Append(name); 
     sb.Append("\n"); 
    } 

    HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK); 
    response.setContent(ChannelBuffers.copiedBuffer(sb.toString(), CharsetUtil.UTF_8)); 
    response.setHeader(CONTENT_TYPE, "text/plain; charset=UTF-8"); 

    if (isKeepAlive(request)) { 
     response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes()); 
     response.setHeader(CONNECTION, HttpHeaders.Values.KEEP_ALIVE); 
    } 

    ChannelFuture future = e.getChannel().write(response); 
    if (!(isKeepAlive(request)) { 
     future.addListener(ChannelFutureListener.CLOSE); 
    } 

    return; 
} 

小心:我剛剛輸入了這個關閉我的頭頂。您可能會收到一兩個編譯錯誤。

+0

這工作完美,謝謝Veebs!我只是對你的東西做了一些調整,所以它會返回包含HTML鏈接的文件。 – Hoofamon 2012-04-12 15:11:10

0

我會想象你會改變分支,如果目標不是「文件」,而是返回目錄列表作爲某種文本/ HTML文件返回錯誤。