/// <summary> /// Deserializes the specified file to folder. /// </summary> /// <param name="pathToFile">The path to file.</param> /// <param name="pathToSave">The path to save.</param> public void Deserialize(string pathToFile, string pathToSave) { using (FileStream fs = new FileStream(pathToFile, FileMode.OpenOrCreate)) { SerializeData serializeData1 = (SerializeData)this.formatter.Deserialize(fs); foreach (string item in serializeData1.Directories) { Directory.CreateDirectory(pathToSave + item); } foreach (FileData item in serializeData1.Files) { string destFile = Path.Combine(pathToSave, item.FilePath); File.WriteAllBytes(destFile, item.FileBytes); } } }
/// <summary> /// Serializes the specified folder to file. /// </summary> /// <param name="pathToFolder">The path to folder.</param> /// <param name="pathToSave">The path to save.</param> public void Serialize(string pathToFolder, string pathToSave) { SerializeData serializeData = new SerializeData(); serializeData.Directories = Directory.GetDirectories(pathToFolder, "*.*", SearchOption.AllDirectories) .Select(d => d.Remove(0, pathToFolder.Length)) .ToArray(); serializeData.Files = Directory.GetFiles(pathToFolder, "*.*", SearchOption.AllDirectories) .Select(f => new FileData { FilePath = f.Remove(0, pathToFolder.Length), FileBytes = File.ReadAllBytes(f) }).ToArray(); using (FileStream fs = new FileStream(pathToSave, FileMode.OpenOrCreate)) { this.formatter.Serialize(fs, serializeData); } }