Beispiel #1
0
        /// <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");
                }
            }
        }
Beispiel #2
0
        /// <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 
        }