Esempio n. 1
0
 public static void GetRecursionFile(ioInfo target, ref List <fileInfo> outfile)
 {
     foreach (var fi in xmlUtils.Files(target))
     {
         outfile.Add(fi);
     }
     foreach (var foi in xmlUtils.Folders(target))
     {
         GetRecursionFile(foi, ref outfile);
     }
 }
        //LIST
        void loadlistView(ioInfo cur)
        {
            tstAddress.Text = "";
            lv.Items.Clear();
            if (cur == null)
            {
                tsbtnBack.Enabled = false;
                var ld = xmlUtils.Drives();
                foreach (driveInfo di in ld)
                {
                    lv.Items.Add(new ListViewItem
                    {
                        Text     = string.Format("{0} ({1})", di.VolumeLabel, di.Name.Replace(@"\", "")),
                        Tag      = di,
                        ImageKey = di.Type
                    });
                }
            }
            else
            {
                tstAddress.Text = xmlUtils.Getlocation(cur, true);

                tsbtnBack.Enabled = true;
                curIO             = cur;
                var lfo = xmlUtils.Folders(cur);
                foreach (folderInfo foi in lfo)
                {
                    lv.Items.Add(new ListViewItem
                    {
                        Text     = foi.Name,
                        Tag      = foi,
                        ImageKey = "Folder"
                    });
                }

                var lfi = xmlUtils.Files(cur);
                foreach (fileInfo fi in lfi)
                {
                    if (!lv.LargeImageList.Images.ContainsKey(fi.Ext))
                    {
                        lv.LargeImageList.Images.Add(fi.Ext, myShell.GetFileIcon(string.Format(".{0}", fi.Ext), false));
                    }
                    lv.Items.Add(new ListViewItem
                    {
                        Text     = string.Format($"{fi.Name}.{fi.Ext}"),
                        Tag      = fi,
                        ImageKey = fi.Ext
                    });
                }
            }
        }
Esempio n. 3
0
        public static string Getlocation(ioInfo cur, bool iscurrent)
        {
            string path = "";

            if (iscurrent)
            {
                path = cur.Name;
            }
            var curpar = cur?.Parent;

            while (curpar != null)
            {
                path   = string.Format($@"{curpar.Name.Replace(@"\", "")}\{path}");
                curpar = curpar.Parent;
            }
            return(path);
        }
Esempio n. 4
0
        public static List <folderInfo> Folders(ioInfo cur)
        {
            var node = cur.Node;
            var l    = new List <folderInfo>();
            var lfo  = node.SelectNodes("Folder");

            foreach (XmlNode nfo in lfo)
            {
                l.Add(new folderInfo
                {
                    Name   = nfo.Attributes["name"].Value,
                    Node   = nfo,
                    Parent = cur
                });
            }
            return(l);
        }
 void addchildnodeforTreeNode(TreeNode Cur, ioInfo fi)
 {
     Cur.Nodes.Clear();
     foreach (folderInfo foi in xmlUtils.Folders(fi))
     {
         var tn = new TreeNode
         {
             Text             = foi.Name,
             ImageKey         = "Folder",
             SelectedImageKey = "Folder",
             Tag = foi
         };
         tn.Nodes.Add("");
         Cur.Nodes.Add(tn);
     }
     Cur.Expand();
 }
Esempio n. 6
0
        public static List <fileInfo> Files(ioInfo cur)
        {
            var node = cur.Node;
            var l    = new List <fileInfo>();
            var lf   = node.SelectNodes("File");

            foreach (XmlNode nf in lf)
            {
                l.Add(new fileInfo
                {
                    Name   = nf.Attributes["name"].Value,
                    Ext    = nf.Attributes["ext"].Value,
                    Size   = long.Parse(nf.Attributes["size"].Value),
                    Node   = nf,
                    Parent = cur
                });
            }
            return(l);
        }
        //BUTTON
        private void BtnOK_Click(object sender, EventArgs e)
        {
            List <ioInfo> listiochoosen = new List <ioInfo>();


            if (AddFile)
            {
                List <driveInfo>  listdisk   = new List <driveInfo>();
                List <folderInfo> listfolder = new List <folderInfo>();
                List <fileInfo>   listfile   = new List <fileInfo>();

                foreach (TreeNode tn in selectednode)
                {
                    if (tn.Tag is folderInfo)
                    {
                        listfolder.Add(tn.Tag as folderInfo);
                    }
                    else if (tn.Tag is driveInfo)
                    {
                        listdisk.Add(tn.Tag as driveInfo);
                    }
                }

                if (cb.Checked)
                {
                    foreach (var di in listdisk)
                    {
                        for (int i = listfolder.Count - 1; i >= 0; i--)
                        {
                            var    foi  = listfolder[i];
                            ioInfo temp = foi;
                            while (temp.Parent != null)
                            {
                                temp = temp.Parent;
                            }
                            if (temp == (ioInfo)di)
                            {
                                listfolder.Remove(foi);
                            }
                        }

                        xmlUtils.GetRecursionFile(di, ref listfile);
                    }

                    foreach (folderInfo foi in listfolder)
                    {
                        xmlUtils.GetRecursionFile(foi, ref listfile);
                    }
                }
                else
                {
                    foreach (var di in listdisk)
                    {
                        listfile.AddRange(xmlUtils.Files(di));
                    }
                    foreach (folderInfo foi in listfolder)
                    {
                        listfile.AddRange(xmlUtils.Files(foi));
                    }
                }

                for (int i = listfile.Count - 1; i >= 0; i--)
                {
                    var    fi       = listfile[i];
                    string filename = string.Format($"{fi.Name}.{fi.Ext}");
                    var    reg      = new Regex(txtMask.Text.Replace(".", "[.]").Replace("*", ".*").Replace("?", "."));
                    if (!reg.IsMatch(filename))
                    {
                        listfile.Remove(fi);
                    }
                }

                foreach (fileInfo fi in listfile)
                {
                    listiochoosen.Add(fi);
                }
            }
            else
            {
                foreach (TreeNode tn in selectednode)
                {
                    listiochoosen.Add(tn.Tag as ioInfo);
                }
            }

            pickdone?.Invoke(listiochoosen);

            DialogResult = DialogResult.OK;
            Close();
        }