Hi, thanks for your replies.
I tried to use DotNetZip under Mono on Linux, it partially works, but not for all files, because Mono seems to have some limitations and bugs about that.
First I read in Mono's doc :
  This problem arises when you have
  files in your file system that Mono
  can not convert into Unicode. Mono
  uses the UTF-8 encoding for the
  filenames stored in your file system
  by default, because it is the
  universally accepted standard.
  Alternatively, you can set the
  MONO_EXTERNAL_ENCODINGS variable, but
  this is not recommended. The problem
  with using MONO_EXTERNAL_ENCODINGS is
  that even if Mono will be able to
  parse your filenames, Mono will still
  store the filenames internall as
  Unicode. If you try to move, overwrite
  or do any other manipulation in the
  file Mono will transform the filename
  from Unicode to your native encoding
  and it might fail to find the file.
Indeed, I get some strange behaviors on the command-line : files can't be added if they contains spaces.
It happens with file names passed through the command line arguments, but folders does not trigger any error, nor files inside directories.
root@portable:~/Bureau# ./ZipIt.exe archive.zip -cp 850 "AB CD.txt"
That zip file (archive.zip) already exists.
adding selection 'AB CD.txt' from dir '.'...
Exception: System.ArgumentException: 'AB CD.txt'
  at Ionic.FileSelector._ParseCriterion (System.String s) [0x00000]
  at Ionic.FileSelector..ctor (System.String selectionCriteria) [0x00000]
  at Ionic.Zip.ZipFile._AddOrUpdateSelectedFiles (System.String selectionCriteria, System.String directoryOnDisk, System.String directoryPathInArchive, Boolean recurseDirectories,Boolean wantUpdate) [0x00000]
  at Ionic.Zip.ZipFile.UpdateSelectedFiles (System.String selectionCriteria, System.String directoryOnDisk, System.String directoryPathInArchive, Boolean recurseDirectories) [0x00000]
  at Ionic.Zip.Examples.ZipIt.Main (System.String[] args) [0x00000]