Пример #1
0
        private void ShowFiles(TreeNode thisNode, String itemPath)
        {
            Boolean addNodes = false;

            if (thisNode.Tag == null || thisNode.Tag.ToString() == "notloaded")
            {
                addNodes = true;
                thisNode.Nodes.Clear();
            }
            String[] files = myPhone.GetFiles(itemPath);
            this.listFiles.Items.Clear();
            Int32 fileSize;

            iPhone.FileTypes fileType;
            listFiles.BeginUpdate();
            foreach (String file in files)
            {
                if (!(file.Equals(".") || file.Equals("..")) || showDotFolders)
                {
                    String       fullPath = itemPath + "/" + file;
                    ListViewItem thisFile = new ListViewItem(file);
                    thisFile.ImageKey = "Other";
                    myPhone.GetFileInfoDetails(fullPath, out fileSize, out fileType);
                    ListViewItem.ListViewSubItem size = new ListViewItem.ListViewSubItem();
                    ListViewItem.ListViewSubItem type = new ListViewItem.ListViewSubItem();
                    ListViewItem.ListViewSubItem path = new ListViewItem.ListViewSubItem();
                    size.Name = "Size";
                    type.Name = "Type";
                    path.Name = "Path";
                    size.Text = fileSize.ToString();
                    thisFile.SubItems.Add(size);
                    ItemProperty thisItem;
                    if ((thisItem = ipItems.FindItem(fullPath)) != null)
                    {
                        thisFile.ImageKey    = thisItem.ImageKey;
                        thisFile.Tag         = thisItem.Tag;
                        thisFile.ToolTipText = thisFile.Text + Environment.NewLine + fileSize.ToString("N") + " bytes" +
                                               Environment.NewLine + thisItem.Name.ToString();
                        type.Text = thisItem.Name;
                        thisFile.SubItems.Add(type);
                    }
                    else
                    {
                        thisFile.ImageKey    = "Other";
                        thisFile.Tag         = "Unknown";
                        thisFile.ToolTipText = thisFile.Text + Environment.NewLine + fileSize.ToString("N") + " bytes" +
                                               Environment.NewLine + thisFile.Tag.ToString();
                        type.Text = "File";
                        thisFile.SubItems.Add(type);
                    }
                    path.Text = fullPath;
                    thisFile.SubItems.Add(path);
                    if ((fileType == iPhone.FileTypes.Folder) && addNodes)
                    {
                        TreeNode childNode = new TreeNode(file);
                        childNode.ImageKey = "Folder";
                        childNode.Name     = fullPath;
                        AddNodes(childNode, fullPath, 0);
                        thisNode.Nodes.Add(childNode);
                        thisNode.Tag = "loaded";
                        Application.DoEvents();
                    }
                    thisFile.Group = listFiles.Groups[listFiles.Groups.Count - 1]; // Other Group
                    for (Int32 i = 0; i < listFiles.Groups.Count; i++)
                    {
                        if (thisFile.Tag.ToString() == listFiles.Groups[i].Tag.ToString())
                        {
                            thisFile.Group = listFiles.Groups[i];
                            break;
                        }
                    }
                    listFiles.Items.Add(thisFile);
                }
            }
            listFiles.EndUpdate();
            if (listFiles.Items.Count > 0)
            {
                listFiles.Items[0].Selected = true;
            }
            if (!listFiles.Visible)
            {
                listApps.Visible  = false;
                listFiles.Visible = true;
            }
        }