Changeset 2079


Ignore:
Timestamp:
01/12/07 14:10:56 (13 years ago)
Author:
melissa
Message:

Fixed bug with long directory listings.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/FileWrapper.java

    r2078 r2079  
    121121        return true; 
    122122      } 
    123       catch (IOException e) { return false; } 
     123      catch (IOException e) {  
     124        /* debug */ e.printStackTrace(); 
     125        return false;  
     126      } 
    124127    } 
    125128    return super.exists(); 
     
    225228        URLConnection c = url.openConnection(); 
    226229        InputStream is = c.getInputStream(); 
    227         int len = c.getContentLength(); 
    228         if (len == -1) len = is.available(); 
    229         byte[] b = new byte[len]; 
    230         int read = is.read(b); 
    231         while (read < b.length) read += is.read(b, read, b.length - read); 
    232         String s = new String(b); 
    233        
     230        boolean foundEnd = false; 
     231 
    234232        Vector files = new Vector(); 
    235         while (s.indexOf("a href") != -1) { 
    236           int ndx = s.indexOf("a href") + 8; 
    237           String f = s.substring(ndx, s.indexOf("\"", ndx)); 
    238           s = s.substring(s.indexOf("\"", ndx) + 1); 
    239           FileWrapper check = new FileWrapper(getAbsolutePath(), f); 
    240           if (check.exists()) files.add(check.getName()); 
     233        while (!foundEnd) { 
     234          byte[] b = new byte[is.available()]; 
     235          int read = is.read(b); 
     236          String s = new String(b); 
     237          if (s.toLowerCase().indexOf("</html>") != -1) foundEnd = true; 
     238 
     239          while (s.indexOf("a href") != -1) { 
     240            int ndx = s.indexOf("a href") + 8; 
     241            String f = s.substring(ndx, s.indexOf("\"", ndx)); 
     242            s = s.substring(s.indexOf("\"", ndx) + 1); 
     243            FileWrapper check = new FileWrapper(getAbsolutePath(), f); 
     244            if (check.exists()) { 
     245              files.add(check.getName()); 
     246            } 
     247          } 
    241248        } 
    242249        return (String[]) files.toArray(new String[0]); 
Note: See TracChangeset for help on using the changeset viewer.