Exemple #1
0
        public void GetFiles6()
        {
            string arah = addressBox.Text;

            System.IO.DirectoryInfo pardir = new System.IO.DirectoryInfo(arah);

            //AddListView addListView = listView1.Items.Add;

            System.IO.FileInfo[] files = pardir.GetFiles();

            AddIList tambahGambar = AddIListFungtion;
            long     totalFiles   = files.Length;

            System.Collections.Specialized.StringCollection keys = iList1.Images.Keys;
            Action action = () =>
            {
                foreach (System.IO.FileInfo file in files)
                {
                    if (keys.Contains(file.Name) == false)
                    {
                        Invoke(tambahGambar, new object[] { file.Name, System.Drawing.Icon.ExtractAssociatedIcon(file.FullName) });
                    }
                    Console.WriteLine(file.Name);
                }
            };

            /*
             * Jang lupa cari:
             *      Disable UI Update
             *
             * supaya tuh iList bole mo fokus di add image kong nanti refresh satu kali dp UI supaya cepat dp respon
             */

            Parallel.Invoke(new Action[] { action });


            ListViewItem[] items1 = new ListViewItem[totalFiles];


            Parallel.For(0, totalFiles, (i) => {
                items1[i]          = new ListViewItem(files[i].Name);
                items1[i].ImageKey = files[i].Name;
                //imgs.Images.Add(files[i].Name, System.Drawing.Icon.ExtractAssociatedIcon(files[i].FullName));
            });

            listView1.Items.AddRange(items1);
        }
Exemple #2
0
        public void GetFiles3()
        {
            string arah = addressBox.Text;

            System.IO.DirectoryInfo pardir = new System.IO.DirectoryInfo(arah);

            //AddListView addListView = listView1.Items.Add;

            System.IO.FileInfo[] files = pardir.GetFiles();

            //int proCount = System.Environment.ProcessorCount;
            AddIList tambahGambar = AddIListFungtion;
            long     totalFiles   = files.Length;

            System.Collections.Specialized.StringCollection keys = iList1.Images.Keys;
            Action action = () =>
            {
                foreach (System.IO.FileInfo file in files)
                {
                    if (fileThreadLoop == false)
                    {
                        break;
                    }

                    if (keys.Contains(file.Name) == false)
                    {
                        Invoke(tambahGambar, new object[] { file.Name, System.Drawing.Icon.ExtractAssociatedIcon(file.FullName), file.FullName });
                        Console.WriteLine(file.Name);
                    }
                }

                fileThreadLoop = false;
            };

            fileThread = new Task(action);
            fileThread.Start();
            //Task t1 = new Task(action);
            //t1.Start();


            fileItemInListView = new ListViewItem[totalFiles];
            string[] fnames = new string[totalFiles];

            Parallel.For(0, totalFiles, (i) => {
                fileItemInListView[i] = new ListViewItem(files[i].Name);
                //fileItemInListView[i].ImageKey = files[i].Name;
                if (trackedFilePath.Contains(files[i].FullName))
                {
                    fileItemInListView[i].ImageKey = files[i].Name;
                }
                else
                {
                    fileItemInListView[i].ImageKey = "file";
                }
                fnames[i] = files[i].Name;
                //fileRecordInListView[i] = files[i].Name;
                //fileRecordInListView.Add(files[i].Name);
                //imgs.Images.Add(files[i].Name, System.Drawing.Icon.ExtractAssociatedIcon(files[i].FullName));
            });

            fileRecordInListView.AddRange(fnames);
            listView1.Items.AddRange(fileItemInListView);
            //iList1.Images.AddRange(imgs.Images);

            //t1.Wait();


            curFileIndeks = 0;
            //ImagePlacer.Enabled = true;
        }