private void LoadChildren() { //test if we already have everything in cache? if (children != null) { return; } //create empty cache children = new Dictionary <string, VirtualNode>(); //read this dir's data sector DATA_SECTOR dataSector = DATA_SECTOR.CreateFromBytes(drive.Disk.ReadSector(DataSectorAt)); //create virtual nodes for each child and add to children dictionary byte[] data = dataSector.DataBytes; for (int i = 0; i < ChildCount; i++) { int childAt = BitConverter.ToInt32(data, i * 4); NODE childNodeSector = NODE.CreateFromBytes(drive.Disk.ReadSector(childAt)); VirtualNode childNode = new VirtualNode(drive, childAt, childNodeSector, this); children.Add(childNode.Name, childNode); } }
private void LoadChildren() { if (children == null) { children = new Dictionary <string, VirtualNode>(); DATA_SECTOR data = DATA_SECTOR.CreateFromBytes(drive.Disk.ReadSector(sector.FirstDataAt)); for (int i = 0; i < ChildCount; i++) { int childAddress = BitConverter.ToInt32(data.DataBytes, i * 4); NODE childSector = NODE.CreateFromBytes(drive.Disk.ReadSector(childAddress)); VirtualNode vn = new VirtualNode(drive, childAddress, childSector, this); children.Add(childSector.Name, vn); } } }