Exemplo n.º 1
0
        public void OpenNode(BundleTreeNode node)
        {
            if (ActiveNode != node)
            {
                ActiveNode = node;

                UpdatePathPanel();

                fileListView.Items.Clear();

                if (node.Parent != null)
                {
                    fileListView.Items.Add(new BundleListItem
                    {
                        Node        = node.Parent,
                        Text        = "..",
                        IsDirectory = true,
                        ImageKey    = "openFolder"
                    });
                }

                foreach (var item in node.Directories.OrderBy(x => x.Key))
                {
                    fileListView.Items.Add(new BundleListItem
                    {
                        Node        = item.Value,
                        Text        = item.Key,
                        IsDirectory = true,
                        ImageKey    = "openFolder"
                    });
                }


                foreach (var item in node.Files.OrderBy(x => x.Key))
                {
                    var lastItem = item.Value[item.Value.Count - 1];
                    var listItem = fileListView.Items.Add(new BundleListItem
                    {
                        Node        = null,
                        FullPath    = lastItem.Name,
                        Text        = item.Key,
                        IsDirectory = false,
                        ImageKey    = "genericFile"
                    });
                    listItem.SubItems.Add(lastItem.Size.ToString());
                    listItem.SubItems.Add(string.Format("{0}%",
                                                        (100 - (int)(lastItem.ZSize / (float)lastItem.Size * 100.0f))));
                    listItem.SubItems.Add(lastItem.CompressionType);
                    listItem.SubItems.Add(lastItem.DateString);
                }
            }
        }
        public List <BundleItem> GetFiles(BundleTreeNode mainnode)
        {
            var bundfiles = new List <BundleItem>();

            if (mainnode?.Files != null)
            {
                foreach (var wfile in mainnode.Files)
                {
                    bundfiles.AddRange(wfile.Value);
                }
                bundfiles.AddRange(mainnode.Directories.Values.SelectMany(GetFiles));
            }
            return(bundfiles);
        }
        public ListViewItem[] CollectFiles(BundleTreeNode root)
        {
            var res = root.Files.Select(file => file.Key).Select(x => new ListViewItem()
            {
                ImageKey    = "genericFile",
                ToolTipText = x,
                Text        = x
            }).ToList();

            foreach (var dr in root.Directories)
            {
                res.AddRange(CollectFiles(dr.Value));
            }
            return(res.ToArray());
        }