Mercurial Hosting > luan
comparison src/luan/webserver/handlers/DirHandler.java @ 1273:ed6e8bd78c11
sort in DirHandler
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 04 Dec 2018 03:35:38 -0700 |
parents | 312e4cadd508 |
children |
comparison
equal
deleted
inserted
replaced
1272:95f6540b27f9 | 1273:ed6e8bd78c11 |
---|---|
5 import java.io.Writer; | 5 import java.io.Writer; |
6 import java.io.OutputStreamWriter; | 6 import java.io.OutputStreamWriter; |
7 import java.io.IOException; | 7 import java.io.IOException; |
8 import java.text.DateFormat; | 8 import java.text.DateFormat; |
9 import java.text.SimpleDateFormat; | 9 import java.text.SimpleDateFormat; |
10 import java.util.Arrays; | |
11 import java.util.Comparator; | |
10 import java.util.Date; | 12 import java.util.Date; |
11 import luan.webserver.Handler; | 13 import luan.webserver.Handler; |
12 import luan.webserver.Request; | 14 import luan.webserver.Request; |
13 import luan.webserver.Response; | 15 import luan.webserver.Response; |
14 import luan.webserver.ResponseOutputStream; | 16 import luan.webserver.ResponseOutputStream; |
19 | 21 |
20 public DirHandler(FileHandler fileHandler) { | 22 public DirHandler(FileHandler fileHandler) { |
21 this.fileHandler = fileHandler; | 23 this.fileHandler = fileHandler; |
22 } | 24 } |
23 | 25 |
26 private static final Comparator<File> sorter = new Comparator<File>() { | |
27 public int compare(File f1, File f2) { | |
28 return f1.getName().compareTo(f2.getName()); | |
29 } | |
30 }; | |
31 | |
24 public Response handle(Request request) { | 32 public Response handle(Request request) { |
25 try { | 33 try { |
26 File file = fileHandler.file(request); | 34 File file = fileHandler.file(request); |
27 if( request.path.endsWith("/") && file.isDirectory() ) { | 35 if( request.path.endsWith("/") && file.isDirectory() ) { |
28 DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz"); | 36 DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz"); |
32 writer.write( "<!doctype html><html>" ); | 40 writer.write( "<!doctype html><html>" ); |
33 writer.write( "<head><style>td{padding: 2px 8px}</style></head>" ); | 41 writer.write( "<head><style>td{padding: 2px 8px}</style></head>" ); |
34 writer.write( "<body>" ); | 42 writer.write( "<body>" ); |
35 writer.write( "<h1>Directory: "+request.path+"</h1>" ); | 43 writer.write( "<h1>Directory: "+request.path+"</h1>" ); |
36 writer.write( "<table border=0>" ); | 44 writer.write( "<table border=0>" ); |
37 for( File child : file.listFiles() ) { | 45 File[] a = file.listFiles(); |
46 Arrays.sort(a,sorter); | |
47 for( File child : a ) { | |
38 String name = child.getName(); | 48 String name = child.getName(); |
39 if( child.isDirectory() ) | 49 if( child.isDirectory() ) |
40 name += '/'; | 50 name += '/'; |
41 writer.write( "<tr>" ); | 51 writer.write( "<tr>" ); |
42 writer.write( "<td><a href='"+name+"'>"+name+"</a></td>" ); | 52 writer.write( "<td><a href='"+name+"'>"+name+"</a></td>" ); |