1. 在Unity 中,使用ICSharpCode.SharpZipLib 压缩,解压时,如果遇到中文文件或文件夹时,就会出现乱码问题, 那么只需在代码中加上如下两句话,其中Enconding,GetEncoding("GB18030"),还可以换成Enconding,GetEncoding("GBK")等等,本人没深入了解,只是发现多种情况都适用。
Encoding gbk = Encoding.GetEncoding("GB18030");
ZipConstants.DefaultCodePage = gbk.CodePage;
完整的压缩文件夹和解压文件夹代码如下
public class ZIPHelper {
/// <summary>
///
/// </summary>
/// <param name="sourceFilePath">要压缩的文件夹</param>
/// <param name="destinationZipFilePath">压缩的文件路径</param>
public void CreateZip(string sourceFilePath, string destinationZipFilePath) {
if (sourceFilePath[sourceFilePath.Length - 1] != System.IO.Path.DirectorySeparatorChar)
sourceFilePath += System.IO.Path.DirectorySeparatorChar;
ZipOutputStream zipStream = new ZipOutputStream(File.Create(destinationZipFilePath));
Encoding gbk = Encoding.GetEncoding("GB18030");
ZipConstants.DefaultCodePage = gbk.CodePage;
zipStream.SetLevel(0); // 压缩级别 0-9
CreateZipFiles(sourceFilePath, zipStream);
zipStream.Finish();
zipStream.Close();
}
// <summary>
// 压缩文件夹
// </summary>
// <param name = "source" > 源目录 </ param >
//< param name="s">ZipOutputStream对象</param>
public void CreateZipFiles(string sourceFilePath, ZipOutp