/// <summary>
        /// Zip压缩至byte[]
        /// </summary>
        /// <param name="srcFolder"></param>
        /// <param name="最顶层是否是文件夹(如果不是,则是文件夹下的一个个文件)"></param>
        /// <returns></returns>
        public static byte[] CompressFromFolder(string srcFolder, bool topFolder)
        {
            AbstractFile memoryFile = new MemoryFile();
            //AbstractFile memoryFile = new DiskFile(System.IO.Path.GetTempFileName());

            ZipArchive archive = CreateZipArchive(memoryFile);

            if (topFolder)
            {
                AbstractFolder source = new DiskFolder(srcFolder);
                source.CopyTo(archive, true);
            }
            else
            {
                foreach (var i in archive.GetItems(false))
                {
                    i.CopyTo(archive, true);
                }
            }

            byte[] buffer;
            using (Stream destStream = memoryFile.OpenRead(FileShare.Read))
            {
                buffer = new byte[destStream.Length];
                destStream.Read(buffer, 0, buffer.Length);
                destStream.Close();
            }

            memoryFile.Delete();
            return(buffer);
        }
        /// <summary>
        /// Zip压缩文件夹至压缩文件
        /// </summary>
        /// <param name="srcFolder"></param>
        /// <param name="destFile"></param>
        /// <returns></returns>
        public static string ZipFromFolder(string srcFolder, string destFile)
        {
            ZipArchive archive = CreateZipArchive(destFile, true);

            AbstractFolder source = new DiskFolder(srcFolder);

            source.CopyTo(archive, true);

            return(destFile);
        }
        /// <summary>
        /// Zip压缩至byte[]
        /// </summary>
        /// <param name="srcFolder"></param>
        /// <param name="最顶层是否是文件夹(如果不是,则是文件夹下的一个个文件)"></param>
        /// <returns></returns>
        public static byte[] CompressFromFolder(string srcFolder, bool topFolder)
        {
            AbstractFile memoryFile = new MemoryFile();
            //AbstractFile memoryFile = new DiskFile(System.IO.Path.GetTempFileName());

            ZipArchive archive = CreateZipArchive(memoryFile);

            if (topFolder)
            {
                AbstractFolder source = new DiskFolder(srcFolder);
                source.CopyTo(archive, true);
            }
            else
            {
                foreach (var i in archive.GetItems(false))
                {
                    i.CopyTo(archive, true);
                }
            }

            byte[] buffer;
            using (Stream destStream = memoryFile.OpenRead(FileShare.Read))
            {
                buffer = new byte[destStream.Length];
                destStream.Read(buffer, 0, buffer.Length);
                destStream.Close();
            }

            memoryFile.Delete();
            return buffer;
        }
        /// <summary>
        /// Zip压缩文件夹至压缩文件
        /// </summary>
        /// <param name="srcFolder"></param>
        /// <param name="destFile"></param>
        /// <returns></returns>
        public static string ZipFromFolder(string srcFolder, string destFile)
        {
            ZipArchive archive = CreateZipArchive(destFile, true);

            AbstractFolder source = new DiskFolder(srcFolder);
            source.CopyTo(archive, true);

            return destFile;
        }