List <string> StartCompressFile(string orignalPath, string targetPath) { int stringLengthOfOrignalPath = orignalPath.Length; string rootName = orignalPath.Substring(orignalPath.LastIndexOf("/")); targetPath += rootName; if (!Directory.Exists(targetPath)) { Directory.CreateDirectory(targetPath); } List <string> allOriganlFiles = new List <string>(); Recursive(orignalPath, allOriganlFiles); List <string> md5List = new List <string>(); foreach (var item in allOriganlFiles) { if (item.EndsWith(".meta") || item.EndsWith(".manifest") || item.EndsWith(manifestName)) { continue; } string fileFloderStruct = item.Substring(stringLengthOfOrignalPath); string zipFile = targetPath + fileFloderStruct; string itemDir = Path.GetDirectoryName(zipFile); if (!Directory.Exists(itemDir)) { Directory.CreateDirectory(itemDir); } string fileName = rootName + "/" + fileFloderStruct; string md5 = CSharpUtils.FileMD5(item); long size = compressFile(zipFile, item, fileName); md5List.Add(fileName + "|" + md5 + "|" + size); } return(md5List); }