做B/S程序用到很多JS和CSS,为了提高性能一般都采取文件压缩,之前都是用别人在线的压缩工具,但每次只能压缩一个文件比较郁闷,每次发布更新很是麻烦,这里抽空写了一个简单的压缩工具,用的Yahoo.Yui.Compressor。
PS:博客园附件咋添加,先放个外链下载地址吧。http://uniold.com/ScriptPacker.rar(时间长了会删除,不保证长期有效)
先上简图
string s = null; if (folderBrowserDialog1.SelectedPath.Length > 0) { DirectoryInfo d = new DirectoryInfo(folderBrowserDialog1.SelectedPath); FileInfo[] fi = d.GetFiles(); foreach (FileInfo f in fi) { if (!Directory.Exists(folderBrowserDialog1.SelectedPath + "\\Min\\")) { Directory.CreateDirectory(folderBrowserDialog1.SelectedPath + "\\Min\\"); } if (f.Extension.ToLower() == ".js") { s = JavaScriptCompressor.Compress(ReaderText(folderBrowserDialog1.SelectedPath + "\\" + f.Name), false/*是否详细记录*/, true/*是否混淆*/, false/*保留所有分号*/, false/*禁用优化*/, 99999/*换行的位置*/, System.Text.Encoding.UTF8/*编码格式*/, null); Create(s, folderBrowserDialog1.SelectedPath + "\\Min\\" + f.Name); } else if (f.Extension.ToLower() == ".css") { s = CssCompressor.Compress(ReaderText(folderBrowserDialog1.SelectedPath + "\\" + f.Name), 99999, CssCompressionType.Hybrid); Create(s, folderBrowserDialog1.SelectedPath + "\\Min\\" + f.Name); } } DialogResult dr = MessageBox.Show("是否打开压缩后的文件夹?", "是否打开", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.Yes) { System.Diagnostics.Process.Start("explorer.exe", folderBrowserDialog1.SelectedPath + "\\Min\\"); } return; } s = richTex.Text; if (checkBox1.Checked) richTex.Text = CssCompressor.Compress(s, 99999, CssCompressionType.Hybrid); else richTex.Text = JavaScriptCompressor.Compress(s, false, true, false, false, 99999, Encoding.UTF8, null); richTex.Select();