Пример #1
0
        public void GetSoftwareFolder(string mme)
        {
            var zipFileName = Guid.NewGuid().ToString();

            try
            {
                var mmeParameter = _config.MmeParameters.Single(m => m.Name == mme);
                var folderName   = Path.Combine(_config.DataPathRoot, mmeParameter.Folder);

                FileStream fileStream;

                using (fileStream = System.IO.File.Open(zipFileName, FileMode.Create, FileAccess.ReadWrite))
                    using (var archive = new ZipArchive(fileStream, ZipArchiveMode.Create, true))
                        foreach (var i in ZipAndXmlHelper.DirectorySearch(folderName))
                        {
                            var entryName = i.Substring(folderName.Length + 1);
                            if (_config.ScmeCommonConfigName == entryName || $@"UI\{_config.ScmeCommonConfigName}" == entryName)
                            {
                                var entry = archive.CreateEntry(entryName);
                                using var stream = entry.Open();
                                stream.Write(new ReadOnlySpan <byte>(ZipAndXmlHelper.GetChangedConfig(i, mmeParameter)));
                            }
                            else
                            {
                                archive.CreateEntryFromFile(i, entryName);
                            }
                        }

                ReturnFileInPars(zipFileName);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            finally
            {
                try
                {
                    if (System.IO.File.Exists(zipFileName))
                    {
                        System.IO.File.Delete(zipFileName);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }

            GC.Collect(2, GCCollectionMode.Forced, true);
            GC.WaitForPendingFinalizers();
        }
Пример #2
0
        public void GetAgentFolder()
        {
            var zipFileName = Guid.NewGuid().ToString();

            try
            {
                var        folderName = Path.Combine(_config.DataPathRoot, _config.ScmeAgentFolderName);
                FileStream fileStream;

                using (fileStream = System.IO.File.Open(zipFileName, FileMode.Create, FileAccess.ReadWrite))
                    using (var archive = new ZipArchive(fileStream, ZipArchiveMode.Create, true))
                        foreach (var i in ZipAndXmlHelper.DirectorySearch(folderName))
                        {
                            archive.CreateEntryFromFile(i, i.Substring(folderName.Length + 1));
                        }

                ReturnFileInPars(zipFileName);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            finally
            {
                try
                {
                    if (System.IO.File.Exists(zipFileName))
                    {
                        System.IO.File.Delete(zipFileName);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }

            GC.Collect(2, GCCollectionMode.Forced, true);
            GC.WaitForPendingFinalizers();
        }