// subPath is relative and with slashes static InputStream inputStreamForFileInDirOrZip(File location, S subPath) ctex { if (location.isDirectory()) { File f = new File(location, subPath); ret f.exists() ? newFileInputStream(f) : null; } else if (location.isFile()) { InputStream in = zipFileInputStream(location, subPath); if (in != null) ret in; } null; }