Return to Snippet

Revision: 5311
at February 27, 2008 12:10 by karelklic


Initial Code
import java.util.zip.*
import java.text.*
 
def toBase2(String sText){
  boolean bChar = true
  int iSize = sText.length()
  int i = 0
  String sAux = "" 
 
  for (i=0; i < iSize; i++) {
    String sLetter = sText.charAt(i) 
    sLetter = Normalizer.normalize(sLetter, Normalizer.Form.NFD)
    try{
      byte[] bLetter = (new String(sLetter)).getBytes("UTF-8")
      char cLetter = (char) bLetter[0]
      sAux += "" + cLetter
    }
    catch(Exception e){
    }
  }
  return sAux
}
 
new File(args[0]).eachFileRecurse() { f ->
  if (f ==~ /.*zip$/ || !f.isFile()) return
  name = f.toString()
  zipname = name.substring(0, name.lastIndexOf(".")) + ".zip"
  out = new ZipOutputStream(new FileOutputStream(zipname))
  nameInZip = toBase2(name.substring(name.lastIndexOf("\\") + 1))
  println nameInZip
  out.putNextEntry(new ZipEntry(nameInZip))
  
  // nejde napsat out.write(f.readbytes()), protoze na 100mb 
  // souboru to zahlasi out of memory
  ins = f.newInputStream()
  buffer = new byte[18024]
  while ((len = ins.read(buffer)) > 0) 
    out.write(buffer, 0, len)
  
  out.closeEntry()
  out.close()
}

Initial URL

                                

Initial Description
Removes diacritics from file name before adding it to the archive. Archive file name retains diacritics.

Initial Title
Compresses all the files in some directory recursively (zip); solves diacritics problems

Initial Tags
file

Initial Language
Groovy