if (file.isDirectory())
        {
            //System.out.println( new String(string.getBytes("ISO8859_1"), "GBK") );
            //String ss = "";
            //new String(ss.getBytes("ISO8859_1"), "GBK")
            File[] files = file.listFiles();
            if (files != null)
                for (int i = 0; i < files.length; i++)
                    recurseFiles(files[i]);
            //file, fileNames[i] for full path
        }
        else
        {
            //      System.out.println(file.getName());
            FileInputStream fin = new FileInputStream(file);
            BufferedInputStream in = new BufferedInputStream(fin);
            
            byte data[] = new byte[BUFFER];
            int len;
            
            String path = file.toString();
            if (path.indexOf(this.ZipBasePath) == 0)
            {
                //                    System.out.println(path);
                //path=path.substring(this.ZipBasePath.length()+1,path.length());
                path = path.substring(this.ZipBasePath.length(), path.length());
                //                          System.out.println(path);
            }
            ZipEntry zipEntry = new ZipEntry(path);
            this.zos.putNextEntry(zipEntry);
            
            while ( (len = in.read(data, 0, BUFFER)) >= 0)
            {
                this.zos.write(data, 0, len);
            }
            in.close();
            m_zipNum++;
            if (m_bDebug)
                System.out.print(">");
        }