home *** CD-ROM | disk | FTP | other *** search
- package sun.net.www.protocol.file;
-
- import java.io.BufferedInputStream;
- import java.io.ByteArrayInputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.URL;
- import sun.misc.Sort;
- import sun.net.www.MessageHeader;
- import sun.net.www.MimeEntry;
- import sun.net.www.MimeTable;
- import sun.net.www.URLConnection;
-
- public class FileURLConnection extends URLConnection {
- // $FF: renamed from: is java.io.InputStream
- InputStream field_0;
- int length;
-
- FileURLConnection(URL var1) {
- super(var1);
- }
-
- public void connect() throws IOException {
- String var1 = super.url.getFile();
- MessageHeader var2 = new MessageHeader();
- int var3 = Integer.getInteger("hotjava.file.iconheight", 32);
- int var4 = Integer.getInteger("hotjava.file.iconwidth", 32);
- MimeTable var5 = MimeTable.getDefaultTable();
- MimeEntry var6 = var5.findByFileName(var1);
- if (var6 != null) {
- var2.add("content-type", var6.getType());
- }
-
- super.url.getHost();
- ((URLConnection)this).setProperties(var2);
- File var7 = new File(var1);
- if (var7.isDirectory()) {
- StringBuffer var8 = new StringBuffer();
- String[] var9 = var7.list();
- if (var9 == null) {
- throw new FileNotFoundException(var1);
- }
-
- StringCompare var10 = new StringCompare();
- Sort.quicksort(var9, var10);
- var2.add("content-type", "text/html");
- var8.append("<title>");
- var8.append(System.getProperty("file.dir.title", "Directory Listing"));
- var8.append("</title>\n");
- var8.append("<base href=\"file://localhost/");
- var8.append(var1.substring(var1.charAt(0) == '/' ? 1 : 0));
- if (var1.endsWith("/")) {
- var8.append("\">");
- } else {
- var8.append("/\">");
- }
-
- var8.append("<h1>");
- var8.append(var1);
- var8.append("</h1>\n");
- var8.append("<hr>\n");
- boolean var11 = Boolean.getBoolean("file.hidedotfiles");
-
- for(int var12 = 0; var12 < var9.length; ++var12) {
- if (!var11 || var9[var12].indexOf(46) != 0) {
- var8.append("<img align=middle src=\"");
- if ((new File(var1 + "/" + var9[var12])).isDirectory()) {
- var8.append("doc:/lib/images/ftp/directory.gif\" width=" + var4 + " height=" + var3 + ">\n");
- } else {
- String var13 = "doc:/lib/images/ftp/file.gif";
- var6 = var5.findByFileName(var9[var12]);
- if (var6 != null) {
- String var14 = var6.getImageFileName();
- if (var14 != null) {
- var13 = var14;
- }
- }
-
- var8.append(var13);
- var8.append("\" width=" + var4 + " height=" + var3 + ">\n");
- }
-
- var8.append("<a href=\"");
- var8.append(var9[var12]);
- var8.append("\">");
- var8.append(var9[var12]);
- var8.append("</a><br>");
- }
- }
-
- this.field_0 = new ByteArrayInputStream(var8.toString().getBytes());
- } else {
- if (var7.exists()) {
- var2.add("Content-length", String.valueOf(var7.length()));
- }
-
- this.field_0 = new BufferedInputStream(new FileInputStream(var1.replace('/', File.separatorChar)));
- }
-
- super.connected = true;
- }
-
- public synchronized InputStream getInputStream() throws IOException {
- if (!super.connected) {
- this.connect();
- }
-
- return this.field_0;
- }
- }
-