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(); }
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(); }