-2

我想知道如何修改这里找到的这个很好的示例处理程序:

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

还提供返回文件目录列表的能力?目前,如果指定了文件的确切路径和名称,它只会提供文件,我想修改它以便我可以指定一个基本路径并获取路径上的文件列表

感谢您的任何想法或想法

4

2 回答 2

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;
}

警告:我刚刚从头顶输入了这个。您可能会收到一两个编译错误。

于 2012-04-12T00:20:45.127 回答
0

我想如果目标不是“文件”,您会更改返回错误的分支,而是将目录列表作为某种文本/html文件返回。

于 2012-04-11T17:50:44.533 回答