home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / net / www / protocol / file / FileURLConnection.class (.txt) next >
Encoding:
Java Class File  |  1997-07-08  |  3.7 KB  |  114 lines

  1. package sun.net.www.protocol.file;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.ByteArrayInputStream;
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.FileNotFoundException;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.net.URL;
  11. import sun.misc.Sort;
  12. import sun.net.www.MessageHeader;
  13. import sun.net.www.MimeEntry;
  14. import sun.net.www.MimeTable;
  15. import sun.net.www.URLConnection;
  16.  
  17. public class FileURLConnection extends URLConnection {
  18.    // $FF: renamed from: is java.io.InputStream
  19.    InputStream field_0;
  20.    int length;
  21.  
  22.    FileURLConnection(URL var1) {
  23.       super(var1);
  24.    }
  25.  
  26.    public void connect() throws IOException {
  27.       String var1 = super.url.getFile();
  28.       MessageHeader var2 = new MessageHeader();
  29.       int var3 = Integer.getInteger("hotjava.file.iconheight", 32);
  30.       int var4 = Integer.getInteger("hotjava.file.iconwidth", 32);
  31.       MimeTable var5 = MimeTable.getDefaultTable();
  32.       MimeEntry var6 = var5.findByFileName(var1);
  33.       if (var6 != null) {
  34.          var2.add("content-type", var6.getType());
  35.       }
  36.  
  37.       super.url.getHost();
  38.       ((URLConnection)this).setProperties(var2);
  39.       File var7 = new File(var1);
  40.       if (var7.isDirectory()) {
  41.          StringBuffer var8 = new StringBuffer();
  42.          String[] var9 = var7.list();
  43.          if (var9 == null) {
  44.             throw new FileNotFoundException(var1);
  45.          }
  46.  
  47.          StringCompare var10 = new StringCompare();
  48.          Sort.quicksort(var9, var10);
  49.          var2.add("content-type", "text/html");
  50.          var8.append("<title>");
  51.          var8.append(System.getProperty("file.dir.title", "Directory Listing"));
  52.          var8.append("</title>\n");
  53.          var8.append("<base href=\"file://localhost/");
  54.          var8.append(var1.substring(var1.charAt(0) == '/' ? 1 : 0));
  55.          if (var1.endsWith("/")) {
  56.             var8.append("\">");
  57.          } else {
  58.             var8.append("/\">");
  59.          }
  60.  
  61.          var8.append("<h1>");
  62.          var8.append(var1);
  63.          var8.append("</h1>\n");
  64.          var8.append("<hr>\n");
  65.          boolean var11 = Boolean.getBoolean("file.hidedotfiles");
  66.  
  67.          for(int var12 = 0; var12 < var9.length; ++var12) {
  68.             if (!var11 || var9[var12].indexOf(46) != 0) {
  69.                var8.append("<img align=middle src=\"");
  70.                if ((new File(var1 + "/" + var9[var12])).isDirectory()) {
  71.                   var8.append("doc:/lib/images/ftp/directory.gif\" width=" + var4 + " height=" + var3 + ">\n");
  72.                } else {
  73.                   String var13 = "doc:/lib/images/ftp/file.gif";
  74.                   var6 = var5.findByFileName(var9[var12]);
  75.                   if (var6 != null) {
  76.                      String var14 = var6.getImageFileName();
  77.                      if (var14 != null) {
  78.                         var13 = var14;
  79.                      }
  80.                   }
  81.  
  82.                   var8.append(var13);
  83.                   var8.append("\" width=" + var4 + " height=" + var3 + ">\n");
  84.                }
  85.  
  86.                var8.append("<a href=\"");
  87.                var8.append(var9[var12]);
  88.                var8.append("\">");
  89.                var8.append(var9[var12]);
  90.                var8.append("</a><br>");
  91.             }
  92.          }
  93.  
  94.          this.field_0 = new ByteArrayInputStream(var8.toString().getBytes());
  95.       } else {
  96.          if (var7.exists()) {
  97.             var2.add("Content-length", String.valueOf(var7.length()));
  98.          }
  99.  
  100.          this.field_0 = new BufferedInputStream(new FileInputStream(var1.replace('/', File.separatorChar)));
  101.       }
  102.  
  103.       super.connected = true;
  104.    }
  105.  
  106.    public synchronized InputStream getInputStream() throws IOException {
  107.       if (!super.connected) {
  108.          this.connect();
  109.       }
  110.  
  111.       return this.field_0;
  112.    }
  113. }
  114.