public override WidgetBase UnPackWidget(ZipFileInfoCollection pack) { SectionWidget widget = null; foreach (ZipFileInfo item in pack) { if (item.RelativePath.EndsWith("-widget.json")) { widget = JsonConvert.DeserializeObject <SectionWidget>(Encoding.UTF8.GetString(item.FileBytes), new SectionContentJsonConverter()); continue; } using (var fs = File.Create((ApplicationContext as CMSApplicationContext).MapPath("~" + item.RelativePath))) { fs.Write(item.FileBytes, 0, item.FileBytes.Length); } if (item.RelativePath.EndsWith(".json")) { var template = JsonConvert.DeserializeObject <SectionTemplate>(Encoding.UTF8.GetString(item.FileBytes)); var sectionTemplateService = ServiceLocator.Current.GetInstance <ISectionTemplateService>(); if (sectionTemplateService.Count(m => m.TemplateName == template.TemplateName) > 0) { sectionTemplateService.Update(template); } else { sectionTemplateService.Add(template); } } } return(widget); }
private void CollectDirectory(string root, DirectoryInfo directory, ZipFileInfoCollection zipFiles) { foreach (FileInfo file in directory.GetFiles()) { CollectFile(file.DirectoryName.Replace(root, "") + "\\", file, zipFiles); } foreach (DirectoryInfo dir in directory.GetDirectories()) { CollectDirectory(root, dir, zipFiles); } }
public void Compress(string path) { ZipFileInfoCollection zipFiles = new ZipFileInfoCollection(_token); foreach (var dir in _directories) { string root = dir.Parent == null ? dir.FullName : dir.Parent.FullName; CollectDirectory(root, dir, zipFiles); } foreach (FileInfo fileItem in _singleFiles) { CollectFile(null, fileItem, zipFiles); } using (GZipStream stream = new GZipStream(File.Create(path), CompressionMode.Compress)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(stream, zipFiles); } }
public void Compress(string path) { ZipFileInfoCollection zipFiles = new ZipFileInfoCollection(); foreach (var dir in _directories) { string root = dir.Parent == null ? dir.FullName : dir.Parent.FullName; CollectDirectory(root, dir, zipFiles); } foreach (var fileItem in _singleFiles) { CollectFile(fileItem.Key, fileItem.Value, zipFiles); } using (GZipStream stream = new GZipStream(File.Create(path), CompressionMode.Compress)) { //BinaryFormatter binaryFormatter = new BinaryFormatter(); //binaryFormatter.Serialize(stream, zipFiles); } }
public MemoryStream ToMemoryStream() { ZipFileInfoCollection zipFiles = new ZipFileInfoCollection(); foreach (var dir in _directories) { string root = dir.Parent == null ? dir.FullName : dir.Parent.FullName; CollectDirectory(root, dir, zipFiles); } foreach (var fileItem in _singleFiles) { CollectFile(fileItem.Key, fileItem.Value, zipFiles); } MemoryStream ms = new MemoryStream(); //BinaryFormatter binaryFormatter = new BinaryFormatter(); //binaryFormatter.Serialize(ms, zipFiles); //ms.Position = 0; return(ms); }
private void CollectFile(string root, FileInfo file, ZipFileInfoCollection zipFiles) { using (FileStream originalFileStream = file.OpenRead()) { if ((File.GetAttributes(file.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & file.Extension != ".gz") { using (MemoryStream ms = new MemoryStream()) { byte[] buffer = new byte[10240]; int count = 0; while ((count = originalFileStream.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, count); } zipFiles.Add(new ZipFileInfo { FileBytes = ms.ToArray(), RelativePath = root + file.Name }); } } } }
public MemoryStream ToMemoryStream() { ZipFileInfoCollection zipFiles = new ZipFileInfoCollection(_token); foreach (var dir in _directories) { string root = dir.Parent == null ? dir.FullName : dir.Parent.FullName; CollectDirectory(root, dir, zipFiles); } foreach (FileInfo fileItem in _singleFiles) { CollectFile(null, fileItem, zipFiles); } MemoryStream ms = new MemoryStream(); BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(ms, zipFiles); ms.Position = 0; return ms; }
private void CollectFile(string root, FileInfo file, ZipFileInfoCollection zipFiles) { using (FileStream originalFileStream = file.OpenRead()) { if ((File.GetAttributes(file.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & file.Extension != ".gz") { using (MemoryStream ms = new MemoryStream()) { byte[] buffer = new byte[10240]; int count = 0; while ((count = originalFileStream.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, count); } zipFiles.Add(new ZipFileInfo { FileBytes = ms.ToArray(), RelativePath = string.IsNullOrEmpty(root) ? "\\" + file.Name : file.DirectoryName.Replace(root, "") + "\\" + file.Name }); } } } }
private void CollectDirectory(string root, DirectoryInfo directory, ZipFileInfoCollection zipFiles) { foreach (FileInfo file in directory.GetFiles()) { CollectFile(root, file, zipFiles); } foreach (DirectoryInfo dir in directory.GetDirectories()) { CollectDirectory(root, dir, zipFiles); } }