static void extractFromZip(String szZipFilePath, String szExtractPath, String szName, ZipFile zf, ZipEntry ze)
  {
    if (ze.isDirectory()) return;

    String szDstName = slash2sep(szName);
    String szEntryDir;
    if (szDstName.lastIndexOf(File.separator) != -1) szEntryDir = szDstName.substring(0, szDstName.lastIndexOf(File.separator)); else {
      szEntryDir = "";
    }
   try
    {
            File newDir = new File((new StringBuilder(String.valueOf(szExtractPath))).append(File.separator).append(szEntryDir).toString());
            newDir.mkdirs();
            FileOutputStream fos = new FileOutputStream((new StringBuilder(String.valueOf(szExtractPath))).append(File.separator).append(szDstName).toString());
            InputStream is = zf.getInputStream(ze);
            byte buf[] = new byte[1024];
            do
            {
                int nLength;
                try
                {
                    nLength = is.read(buf);
                }
                catch(EOFException ex)
                {
                    break;
                }
                if(nLength < 0)
                    break;
                fos.write(buf, 0, nLength);
            } while(true);
            is.close();
            fos.close();

    }
    catch (Exception e)
    {
      print(e.toString());
    }
  }