private void GetStorageAndStreams(StoragePart storage, CompoundDocumentItem parent) { foreach (var item in parent.Children) { if (item.ObjectType == 1) //Substorage { var part = new StoragePart(); storage.SubStorage.Add(item.Name, part); GetStorageAndStreams(part, item); } else if (item.ObjectType == 2) //Stream { storage.DataStreams.Add(item.Name, item.Stream); } } }
private void WriteStorageAndStreams(StoragePart storage, CompoundDocumentItem parent) { foreach (var item in storage.SubStorage) { var c = new CompoundDocumentItem() { Name = item.Key, ObjectType = 1, Stream = null, StreamSize = 0, Parent = parent }; parent.Children.Add(c); WriteStorageAndStreams(item.Value, c); } foreach (var item in storage.DataStreams) { var c = new CompoundDocumentItem() { Name = item.Key, ObjectType = 2, Stream = item.Value, StreamSize = (item.Value == null ? 0 : item.Value.Length), Parent = parent }; parent.Children.Add(c); } }