示例#1
0
        public D2pDirectory[] GetDirectoriesTree(string directory)
        {
            List <D2pDirectory> result = new List <D2pDirectory>();

            string[] directoriesName = directory.Split(new char[]
            {
                '/',
                '\\'
            }, StringSplitOptions.RemoveEmptyEntries);
            D2pDirectory[] result2;
            if (directoriesName.Length == 0)
            {
                result2 = new D2pDirectory[0];
            }
            else
            {
                D2pDirectory current = this.m_rootDirectories.SingleOrDefault((D2pDirectory entry) => entry.Name == directoriesName[0]);
                if (current == null)
                {
                    result2 = new D2pDirectory[0];
                }
                else
                {
                    result.Add(current);
                    foreach (string dir in directoriesName.Skip(1))
                    {
                        if (!current.HasDirectory(dir))
                        {
                            result2 = result.ToArray();
                            return(result2);
                        }
                        current = current.TryGetDirectory(dir);
                        result.Add(current);
                    }
                    result2 = result.ToArray();
                }
            }
            return(result2);
        }
示例#2
0
        public D2pDirectory TryGetDirectory(string directory)
        {
            string[] directoriesName = directory.Split(new char[]
            {
                '/',
                '\\'
            }, StringSplitOptions.RemoveEmptyEntries);
            D2pDirectory result;

            if (directoriesName.Length == 0)
            {
                result = null;
            }
            else
            {
                D2pDirectory current = this.m_rootDirectories.SingleOrDefault((D2pDirectory entry) => entry.Name == directoriesName[0]);
                if (current == null)
                {
                    result = null;
                }
                else
                {
                    foreach (string dir in directoriesName.Skip(1))
                    {
                        if (!current.HasDirectory(dir))
                        {
                            result = null;
                            return(result);
                        }
                        current = current.TryGetDirectory(dir);
                    }
                    result = current;
                }
            }
            return(result);
        }