public void AddChild(FileSystemNode node) { Children.RemoveAll(child => child.Name.Equals(node.Name, StringComparison.InvariantCultureIgnoreCase)); Children.Add(node); TouchLastWriteTime(); TouchLastAccessTime(); }
internal void Move(FileSystemNode source, FolderNode destParentNode, string destName) { Children.Remove(source); source.Name = destName; destParentNode.AddChild(source); }
internal void RemoveChild(FileSystemNode nodeToRemove) { nodeToRemove.VerifyCanBeRemoved(); nodeToRemove.Dispose(); if (Children.Remove(nodeToRemove) == false) throw new InvalidOperationException(string.Format("Trying to remove a node '{0}' that doesn't exist.", nodeToRemove)); TouchLastWriteTime(); TouchLastAccessTime(); }
private void MoveFileSystemItem(FileSystemNode sourceNode, RootedCanonicalPath destination) { var parser = new PathParser(destination.FullPath); var destParentNode = parser.GetParentNode(_rootNode); string destName = parser.GetLeafNodeName(); sourceNode.MoveTo(destParentNode, destName); }