public string GetParentPath(EntryStore entryStore) { Entry[] parentBlock; var parentEntryIndex = entryStore.EntryIndex(Parent, out parentBlock); return(parentBlock[parentEntryIndex].FullPath); }
public void SetParentSize(EntryStore entryStore, ulong size) { Entry[] parentBlock; var parentEntryIndex = entryStore.EntryIndex(Parent, out parentBlock); parentBlock[parentEntryIndex].Size = size; }
public bool MoveNext() { if (_current == null) { if (_indexStack.Count > 0) { var dirIndex = _indexStack.Dequeue(); Entry[] dirBlock; var dirEntryIndex = _entryStore.EntryIndex(dirIndex, out dirBlock); if (dirBlock != null && dirBlock[dirEntryIndex].Child != 0) { _cachedEntryKey.Index = dirBlock[dirEntryIndex].Child; _current = _cachedEntryKey; //_current = new EntryKey {Index = dirBlock[dirEntryIndex].Child}; } } } else { Entry[] currentBlock; var currentEntryIndex = _entryStore.EntryIndex(_current.Index, out currentBlock); if (currentBlock[currentEntryIndex].Child != 0) // should i check IsDirectory ? { _indexStack.Enqueue(_current.Index); } if (currentBlock[currentEntryIndex].Sibling != 0) { _cachedEntryKey.Index = currentBlock[currentEntryIndex].Sibling; _current = _cachedEntryKey; //_current = new EntryKey { Index = currentBlock[currentEntryIndex].Sibling }; } else { _current = null; } if (_current == null) { return(MoveNext()); } } return(_current != null); }