/*** Decompression function. * decompress the zipfile file to the folderpath directory. * @ throws exception */Public int upzipfile (File zipfile, string folderpath) throws zipexception, ioexception {// public static void upzipfile () throws exception {zipfile zfile = new zipfile (zipfile); enumeration zlist = zfile. entries (); zipentry ze = NULL; byte [] Buf = new byte [1024]; while (zlist. hasmoreelements () {ze = (zipentry) zlist. nextelement (); If (Ze. isdirector Y () {log. D ("upzipfile", "Ze. getname () = "+ Ze. getname (); string dirstr = folderpath + Ze. getname (); // dirstr. trim (); dirstr = new string (dirstr. getbytes ("8859_1"), "gb2312"); log. D ("upzipfile", "str =" + dirstr); file F = new file (dirstr); F. mkdir (); continue;} log. D ("upzipfile", "Ze. getname () = "+ Ze. getname (); outputstream OS = new bufferedoutputstream (New fileoutputstream (getrealfilename (folderpat H, Ze. getname (); inputstream is = new bufferedinputstream (zfile. getinputstream (ze); int readlen = 0; while (readlen = is. read (BUF, 0, 1024 ))! =-1) {OS. write (BUF, 0, readlen);} is. close (); OS. close ();} zfile. close (); log. D ("upzipfile", "finishssssssssssssssssss"); Return 0;}/*** returns the actual file name corresponding to a relative path for a given root directory. * @ Param basedir specify the root directory * @ Param absfilename relative path name, from name * @ return Java in zipentry. io. file the actual file */public static file getrealfilename (string basedir, string absfilename) {string [] dirs = absfilename. split ("/"); file ret = new file (Base DIR); string substr = NULL; If (dirs. length> 1) {for (INT I = 0; I <dirs. length-1; I ++) {substr = dirs [I]; try {// substr. trim (); substr = new string (substr. getbytes ("8859_1"), "gb2312");} catch (unsupportedencodingexception e) {// todo auto-generated Catch Block E. printstacktrace ();} ret = new file (Ret, substr);} log. D ("upzipfile", "1ret =" + RET); If (! Ret. exists () ret. mkdirs (); substr = dirs [dirs. length-1]; try {// substr. trim (); substr = new string (substr. getbytes ("8859_1"), "gb2312"); log. D ("upzipfile", "substr =" + substr);} catch (unsupportedencodingexception e) {// todo auto-generated Catch Block E. printstacktrace ();} ret = new file (Ret, substr); log. D ("upzipfile", "2ret =" + RET); return ret ;}