2010-04-19 17 views
3

J'utilise DotNetZip dans mon projet. Ok, mais quand j'utilise la méthode AddDirectoryByName j'ai un mauvais nom de répertoire.Problème de DotNetZip avec l'encodage russe

+0

Y at-il particulier bibliothèque ZIP que vous utilisez? – Nayan

+0

Que voulez-vous dire par "mauvais nom"? Pouvez-vous poster un exemple spécifique? – Cheeso

+0

Je l'ai essayé avec la toute dernière version de DotNetZip et je n'ai pas d'exception: 'using (var zip = nouveau ZipFile()) {zip.AlternateEncoding = Encoding.GetEncoding (866); zip.AddDirectoryByName ("Россия"); zip.Save ("archive.zip"); } ' –

Répondre

6

manière universelle pour tous est:

zip.AlternateEncoding = Encoding.UTF8; 
zip.ProvisionalAlternateEncoding = Encoding.GetEncoding(Console.OutputEncoding.CodePage); 
zip.AlternateEncodingUsage = ZipOption.AsNecessary; 
4

De cette façon, dans de nouveaux travaux de version pour moi

zip.AlternateEncodingUsage = ZipOption.Always; 
zip.AlternateEncoding = Encoding.GetEncoding(866); 
2

Vous risquez Peek Définition d'abord. Ensuite, vous trouverez ceci:

public ZipFile(Encoding encoding); 

Vous pouvez utiliser ceci:

using (ZipFile zip = new ZipFile(Encoding.UTF8))