예제 #1
0
        public static ListingItem ConvertToListingItem(IEnumerable<FtpItem> inputItems, string separator)
        {
            var root = new ListingItem("Root", false);
            foreach (var item in inputItems)
            {
                var currentParent = root;
                foreach (
                    var pathSegment in item.FullPath.Remove(0, 1).Split(new[] {separator}, StringSplitOptions.None))
                {
                    var child = currentParent.Children.FirstOrDefault(t => t.Text == pathSegment);
                    if (child == null)
                    {
                        child = new ListingItem(pathSegment, item.ItemType == FtpItemType.Directory);
                        currentParent.Children.Add(child);
                    }
                    currentParent = child;
                }
            }

            return root;
        }
예제 #2
0
        private void RecursiveAdd(ListingItem item, TreeNode target)
        {
            foreach (var child in item.Children)
            {
                if (!child.IsDirectory)
                    continue;

                var childNode = new TreeNode(child.Text, 1, 1);
                target.Nodes.Add(childNode);
                RecursiveAdd(child, childNode);
            }
        }