递归压缩某个目录中的所有文件(zip);解决音调符号问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归压缩某个目录中的所有文件(zip);解决音调符号问题相关的知识,希望对你有一定的参考价值。

Removes diacritics from file name before adding it to the archive. Archive file name retains diacritics.
  1. import java.util.zip.*
  2. import java.text.*
  3.  
  4. def toBase2(String sText){
  5. boolean bChar = true
  6. int iSize = sText.length()
  7. int i = 0
  8. String sAux = ""
  9.  
  10. for (i=0; i < iSize; i++) {
  11. String sLetter = sText.charAt(i)
  12. sLetter = Normalizer.normalize(sLetter, Normalizer.Form.NFD)
  13. try{
  14. byte[] bLetter = (new String(sLetter)).getBytes("UTF-8")
  15. char cLetter = (char) bLetter[0]
  16. sAux += "" + cLetter
  17. }
  18. }
  19. }
  20. return sAux
  21. }
  22.  
  23. new File(args[0]).eachFileRecurse() { f ->
  24. if (f ==~ /.*zip$/ || !f.isFile()) return
  25. name = f.toString()
  26. zipname = name.substring(0, name.lastIndexOf(".")) + ".zip"
  27. nameInZip = toBase2(name.substring(name.lastIndexOf("\\") + 1))
  28. println nameInZip
  29. out.putNextEntry(new ZipEntry(nameInZip))
  30.  
  31. // nejde napsat out.write(f.readbytes()), protoze na 100mb
  32. // souboru to zahlasi out of memory
  33. ins = f.newInputStream()
  34. buffer = new byte[18024]
  35. while ((len = ins.read(buffer)) > 0)
  36. out.write(buffer, 0, len)
  37.  
  38. out.closeEntry()
  39. out.close()
  40. }

以上是关于递归压缩某个目录中的所有文件(zip);解决音调符号问题的主要内容,如果未能解决你的问题,请参考以下文章

Linux下实现对某个文件夹进行压缩

压缩文件2 tar 打包压缩

linux:压缩某个文件夹的实现方法

在golang中递归压缩目录

如何从 Unix 命令行递归解压缩目录及其子目录中的档案?

将某个目录下的所有文件进行压缩