Changeset 3843


Ignore:
Timestamp:
03/24/08 07:29:46 (12 years ago)
Author:
melissa
Message:

Yet another file mapping fix.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/in/FV1000Reader.java

    r3836 r3843  
    209209    in = new RandomAccessStream(id); 
    210210    if (isOIB) poi = new POITools(Location.getMappedId(id)); 
     211 
     212    boolean mappedOIF = !isOIB && !new File(id).getAbsoluteFile().exists(); 
    211213 
    212214    channelNames = new Vector(); 
     
    291293 
    292294    String f = new Location(oifName).getAbsoluteFile().getAbsolutePath(); 
    293     String path = isOIB || !f.endsWith(oifName) ? "" : 
     295    String path = (isOIB || !f.endsWith(oifName) || mappedOIF) ? "" : 
    294296      f.substring(0, f.lastIndexOf(File.separator) + 1); 
    295297 
     
    332334            value = first + last; 
    333335          } 
     336          if (mappedOIF) { 
     337            value = value.substring(value.lastIndexOf(File.separator) + 1); 
     338          } 
    334339          filenames.put(new Integer(key.substring(11)), value.trim()); 
    335340        } 
     
    343348            String last = value.substring(value.lastIndexOf("=", ndx) + 1); 
    344349            value = first + last; 
     350          } 
     351          if (mappedOIF) { 
     352            value = value.substring(value.lastIndexOf(File.separator) + 1); 
    345353          } 
    346354          if (thumbId == null) thumbId = value.trim(); 
     
    359367            } 
    360368          } 
     369          if (mappedOIF) { 
     370            value = value.substring(value.lastIndexOf(File.separator) + 1); 
     371          } 
    361372          lutNames.add(path + value); 
    362373        } 
     
    373384          if (value.startsWith("\"")) { 
    374385            value = value.substring(1, value.length() - 1); 
     386          } 
     387          if (mappedOIF) { 
     388            value = value.substring(value.lastIndexOf(File.separator) + 1); 
    375389          } 
    376390          previewNames.add(path + value.trim()); 
     
    471485 
    472486    thumbId = thumbId.replaceAll("pty", "bmp"); 
    473     thumbId = sanitizeFile(thumbId, isOIB ? "" : path); 
     487    thumbId = sanitizeFile(thumbId, (isOIB || mappedOIF) ? "" : path); 
    474488    if (isOIB) thumbId = thumbId.substring(1); 
    475489 
     
    483497      String file = (String) filenames.get(new Integer(i)); 
    484498      while (file == null) file = (String) filenames.get(new Integer(++i)); 
    485       file = sanitizeFile(file, isOIB ? "" : path); 
    486  
    487       tiffPath = file.substring(0, file.lastIndexOf(File.separator)); 
     499      file = sanitizeFile(file, (isOIB || mappedOIF) ? "" : path); 
     500 
     501      if (file.indexOf(File.separator) != -1) { 
     502        tiffPath = file.substring(0, file.lastIndexOf(File.separator)); 
     503      } 
     504      else tiffPath = file; 
    488505      RandomAccessStream ptyReader = getFile(file); 
    489506      s = ptyReader.readString((int) ptyReader.length()); 
     
    510527                value = first + last; 
    511528              } 
    512               tiffs.add(ii, tiffPath + File.separator + value); 
     529              if (mappedOIF) tiffs.add(ii, value); 
     530              else tiffs.add(ii, tiffPath + File.separator + value); 
    513531            } 
    514532          } 
     
    524542      if (!isOIB) { 
    525543        Location dir = new Location(tiffPath); 
    526         String[] list = dir.list(); 
     544        String[] list = mappedOIF ? 
     545          (String[]) Location.getIdMap().keySet().toArray(new String[0]) : 
     546          dir.list(); 
    527547        for (int i=0; i<list.length; i++) { 
    528           usedFiles.add(new Location(tiffPath, list[i]).getAbsolutePath()); 
     548          if (mappedOIF) usedFiles.add(list[i]); 
     549          else usedFiles.add(new Location(tiffPath, list[i]).getAbsolutePath()); 
    529550        } 
    530551      } 
     
    666687 
    667688  private String sanitizeFile(String file, String path) { 
    668     String f = file.substring(1, file.length() - 1); 
     689    String f = file; 
     690    f = f.replaceAll("\"", ""); 
    669691    f = f.replace('\\', File.separatorChar); 
    670692    f = f.replace('/', File.separatorChar); 
Note: See TracChangeset for help on using the changeset viewer.