private string Serialization() { DataContractJsonSerializer formatter = new DataContractJsonSerializer(typeof(SimpleDirectory)); SimpleDirectory rlt = ConstructDirectoryTree(rootDirectoryInfo, rootSimpleDirectory); string result = string.Empty; using (MemoryStream stream = new MemoryStream()) { formatter.WriteObject(stream, rlt); result = System.Text.Encoding.UTF8.GetString(stream.ToArray()); } return(result); }
public void DeSerialization() { if (serializedResult == string.Empty) { throw new NullReferenceException("SerializedResult is empty!"); } DataContractJsonSerializer formatter = new DataContractJsonSerializer(typeof(SimpleDirectory)); using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(serializedResult))) { SimpleDirectory outSimpleDirectory = formatter.ReadObject(stream) as SimpleDirectory; deserializedResult = outSimpleDirectory; } }
public SimpleDirectory ConstructDirectoryTree(DirectoryInfo directoryInfo, SimpleDirectory simpleDirectory) { simpleDirectory = new SimpleDirectory() { name = directoryInfo.Name, childDirectories = new List <SimpleDirectory>(), childFiles = new List <SimpleFile>() }; if (directoryInfo.GetDirectories().Length == 0) { simpleDirectory.childDirectories = null; // return; } else { foreach (DirectoryInfo d in directoryInfo.GetDirectories()) { SimpleDirectory child = new SimpleDirectory() { name = d.Name }; simpleDirectory.childDirectories.Add(ConstructDirectoryTree(d, child)); } } if (directoryInfo.GetFiles().Length != 0) { foreach (FileInfo f in directoryInfo.GetFiles()) { SimpleFile simpleFile = new SimpleFile() { name = f.Name }; simpleDirectory.childFiles.Add(simpleFile); } } else { simpleDirectory.childFiles = null; } return(simpleDirectory); }