FileStore.FileStore.CreateFolderImpl C# (CSharp) Method

CreateFolderImpl() private method

private CreateFolderImpl ( string path ) : StoreFolder
path string
return StoreFolder
        private StoreFolder CreateFolderImpl(string path)
        {
            string[] components = path.Split(Separators, StringSplitOptions.RemoveEmptyEntries);

            if(components.Length == 0) {
                return null;
            }

            StoreFolder parent = _root;
            StoreFolder folder = null;

            // locate the parent
            int position = 0;
            int length = components.Length;

            while(position < (length - 1)) {
                if(parent.Subfolders.TryGetValue(components[position], out folder) == false) {
                    break;
                }

                parent = folder;
                position++;
            }

            // create the required folders
            while(position < length) {
                string name = components[position];
                folder = new StoreFolder(name);

                parent.Subfolders.Add(name, folder);
                parent = folder;

                position++;
            }

            return folder;
        }