/// <summary> /// 从选择的文件压缩Css脚本 /// </summary> /// <param name="cssFilesPath"></param> /// <param name="resultRender"></param> /// <param name="ct"></param> private async void CompressCssCodeFromFiles(IEnumerable<string> cssFilesPath, TextBox resultRender, CompressType ct) { int toBase64ImgMaxSize = this.css_checkBox_1.Checked ? (int)this.css_numericUpDown_1.Value * 1024 : 0; if (ct == CompressType.FileSingle) { foreach (var cssFile in cssFilesPath) { resultRender.Text += string.Format("正在处理文件 {0} \r\n", cssFile); string resultCode = await cssFile.CompressCssFromFile(string.Empty, toBase64ImgMaxSize); if (!string.IsNullOrEmpty(resultCode)) { string saveFilePath = new List<string> { cssFile }.GetCompressFileName(); if (!string.IsNullOrEmpty(saveFilePath)) { await saveFilePath.WriteTxtFile(resultCode); resultRender.Text += string.Format("压缩完成,已经保存至文件 {0} \r\n", saveFilePath); } else { resultRender.Text += string.Format("*** 压缩完成,保存文件失败! \r\n"); } } else { resultRender.Text += string.Format("*** 压缩失败,请检查文件及内容! \r\n"); } resultRender.Text += string.Format("====================================================================\r\n\r\n"); } } else { StringBuilder jsBuilder = new StringBuilder(); string resultCode; foreach (var cssFile in cssFilesPath) { resultRender.Text += string.Format("正在处理文件 {0} \r\n", cssFile); resultCode = await cssFile.CompressCssFromFile(string.Empty, toBase64ImgMaxSize); if (!string.IsNullOrEmpty(resultCode)) { resultRender.Text += "压缩完成 \r\n"; if (ct == CompressType.MergeAndCompressed) { jsBuilder.Append(resultCode); } else { jsBuilder.AppendLine("/* " + Path.GetFileName(cssFile) + " */"); jsBuilder.AppendLine(resultCode); } } else { resultRender.Text += string.Format("*** 压缩失败,请检查文件及内容! \r\n"); } resultRender.Text += string.Format("-------------------------------\r\n"); } resultRender.Text += "\r\n============== 文件读取并压缩完成!开始合并及保存 ==============\r\n"; resultCode = jsBuilder.ToString(); jsBuilder.Clear(); jsBuilder = null; string saveFilePath = cssFilesPath.GetCompressFileName(); if (!string.IsNullOrEmpty(saveFilePath)) { await saveFilePath.WriteTxtFile(resultCode); resultRender.Text += string.Format("任务完成,已经保存至文件 {0} \r\n", saveFilePath); } else { resultRender.Text += string.Format("*** 保存文件失败! \r\n"); } } }
/// <summary> /// 从选择的文件压缩JS脚本 /// </summary> /// <param name="jsFilesPath"></param> /// <param name="resultRender"></param> /// <param name="ct"></param> private async void CompressjsCodeFromFiles(IEnumerable<string> jsFilesPath, TextBox resultRender, CompressType ct) { #region CompressType.FileSingle if (ct == CompressType.FileSingle) { foreach (var jsFile in jsFilesPath) { resultRender.Text += string.Format("正在处理文件 {0} \r\n", jsFile); string sourceCode = await jsFile.ReadFileText(); if (!string.IsNullOrEmpty(sourceCode)) { string resultCode = await sourceCode.ComoressJsCode(); if (!string.IsNullOrEmpty(resultCode) && !sourceCode.Equals(resultCode)) { string saveFilePath = new List<string> { jsFile }.GetCompressFileName(); if (!string.IsNullOrEmpty(saveFilePath)) { await saveFilePath.WriteTxtFile(resultCode); resultRender.Text += string.Format("压缩完成,已经保存至文件 {0} \r\n", saveFilePath); } else { resultRender.Text += string.Format("*** 压缩完成,保存文件失败! \r\n"); } } else { resultRender.Text += string.Format("*** 压缩失败,请检查文件及内容! \r\n"); } } else { resultRender.Text += string.Format("*** 读取失败,请检查文件及内容! \r\n"); } resultRender.Text += string.Format("====================================================================\r\n\r\n"); } } #endregion #region CompressType.MergeAndCompressed if (ct == CompressType.MergeAndCompressed) { StringBuilder jsBuilder = new StringBuilder(); string sourceCode; foreach (var jsFile in jsFilesPath) { resultRender.Text += string.Format("正在读取文件 {0} \r\n", jsFile); sourceCode = await jsFile.ReadFileText(); if (!string.IsNullOrEmpty(sourceCode)) { jsBuilder.AppendLine(sourceCode); resultRender.Text += "读取完成!\r\n"; } else { resultRender.Text += string.Format("*** 读取失败,请检查文件及内容! \r\n"); } resultRender.Text += string.Format("-------------------------------\r\n"); } resultRender.Text += "\r\n============== 文件读取完成!开始压缩 ==============\r\n"; sourceCode = jsBuilder.ToString(); jsBuilder.Clear(); jsBuilder = null; string resultCode = await sourceCode.ComoressJsCode(); if (!string.IsNullOrEmpty(resultCode) && !sourceCode.Equals(resultCode)) { string saveFilePath = jsFilesPath.GetCompressFileName(); if (!string.IsNullOrEmpty(saveFilePath)) { await saveFilePath.WriteTxtFile(resultCode); resultRender.Text += string.Format("压缩完成,已经保存至文件 {0} \r\n", saveFilePath); } else { resultRender.Text += string.Format("*** 压缩完成,保存文件失败! \r\n"); } } else { resultRender.Text += string.Format("*** 压缩失败,请检查文件及内容! \r\n"); } } #endregion #region CompressType.CompressedAndMerge if (ct == CompressType.CompressedAndMerge) { StringBuilder jsBuilder = new StringBuilder(); string sourceCode, resultCode; foreach (var jsFile in jsFilesPath) { resultRender.Text += string.Format("正在处理文件 {0} \r\n", jsFile); sourceCode = await jsFile.ReadFileText(); if (!string.IsNullOrEmpty(sourceCode)) { resultCode = await sourceCode.ComoressJsCode(); if (!string.IsNullOrEmpty(resultCode) && !sourceCode.Equals(resultCode)) { resultRender.Text += "压缩完成 \r\n"; jsBuilder.AppendLine("//" + Path.GetFileName(jsFile)); jsBuilder.AppendLine(resultCode); } else { resultRender.Text += string.Format("*** 压缩失败,请检查文件及内容! \r\n"); } } else { resultRender.Text += string.Format("*** 读取失败,请检查文件及内容! \r\n"); } resultRender.Text += string.Format("-------------------------------\r\n"); } resultRender.Text += "\r\n============== 文件读取并压缩完成!开始合并及保存 ==============\r\n"; resultCode = jsBuilder.ToString(); jsBuilder.Clear(); jsBuilder = null; string saveFilePath = jsFilesPath.GetCompressFileName(); if (!string.IsNullOrEmpty(saveFilePath)) { await saveFilePath.WriteTxtFile(resultCode); resultRender.Text += string.Format("合并完成,已经保存至文件 {0} \r\n", saveFilePath); } else { resultRender.Text += string.Format("*** 保存文件失败! \r\n"); } } #endregion }