private void CleanCopyRename()
        {
            var src = new Enumerator(sourcePath);
            string oldname = Parameter.SourceSolutionName;
            string newname = Parameter.DestinationName;
            if (newname.ToLower().EndsWith(".zip"))
            {
                newname = newname.Substring(0, newname.Length - 4);
            }

            if (Directory.Exists(destinationPath))
            {
                throw new Exception("destination directory is exist.");
            }

            foreach (string d in src.Directories())
            {
                string np = src.RelativePath(d);
                if (Parameter.NeedRename)
                {
                    np = np.Replace(oldname, newname);
                }
                Directory.CreateDirectory(Path.Combine(destinationPath, np));
            }

            foreach (string f in src.Files())
            {
                string nf = src.RelativePath(f);
                if (Parameter.NeedRename)
                {
                    nf = nf.Replace(oldname, newname);
                }

                string fp = Path.Combine(destinationPath, nf);
                File.Copy(f, fp);

                if (Parameter.NeedRename)
                {
                    File.WriteAllLines(
                        fp,
                        File.ReadAllLines(fp).Select(l => l.Replace(oldname, newname)),
                        Encoding.UTF8
                        );
                }
            }
        }
        private void Zip()
        {
            if (!Parameter.IsZipDestination) return;

            using (var zip = new ZipFile(destinationZip))
            {
                var src = new Enumerator(destinationPath);

                foreach (string file in src.Files())
                {
                    string p = Path.GetDirectoryName(file);
                    zip.AddFile(file, src.RelativePath(p));
                }

                zip.Save();
            }
        }