private IResource Create(LinkedList<String> path) { String segment; do { if (path.Count == 0) return this; segment = path.First.Value; path.RemoveFirst(); } while (segment.Length == 0 || segment.Equals("/")); StorageResource resource = new StorageResource(segment); Add(resource); return resource.Create(path); }