Exemplo n.º 1
0
        private void CopyListBtn_Click(System.Object sender, System.EventArgs e)
        {
            int Ninds = FileListTxt.SelectedIndices.Count;

            if (Ninds == 0)            //no files selected but asked to copy files
            {
                MessageBox.Show("No Files Selected!...", "Error");
                return;
            }

            string[] selectfiles = new string[Ninds];
            for (int j = 0; j < Ninds; j++)
            {
                selectfiles[j] = (string)FileListTxt.Items[FileListTxt.SelectedIndices[j]];
            }

            FolderBrowserDialog fdlg = new FolderBrowserDialog();

            fdlg.SelectedPath = selectfiles[0].Substring(0, selectfiles[0].LastIndexOf("\\") + 1);

            if (fdlg.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }

            object[] arg = new object[3] {
                selectfiles, fdlg.SelectedPath, "copy"
            };

            WAITBAR      = new WaitBar();
            WAITBAR.Text = "Copying Files...";
            WAITBAR.ProgressBar.Maximum = selectfiles.Length;
            FileCopyBGWrkr.RunWorkerAsync(arg);
            WAITBAR.ShowDialog();
        }
Exemplo n.º 2
0
        private void FileCopyBGWrkr_DoWork(System.Object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            object[] arg          = (object[])e.Argument;
            string[] selectfiles  = (string[])arg[0];
            string   selectedpath = (string)arg[1];
            string   style        = (string)arg[2];
            bool     move         = false;

            if (style == "move")
            {
                move = true;
            }

            int    Ninds = selectfiles.Length;
            string newfile;

            for (int j = 0; j < Ninds; j++)
            {
                if (WAITBAR.DialogResult == DialogResult.Cancel)
                {
                    return;
                }
                FileCopyBGWrkr.ReportProgress(j + 1, move);

                newfile = selectedpath + "\\" + selectfiles[j].Substring(selectfiles[j].LastIndexOf("\\"));

                while (File.Exists(newfile))                //then need to add some appendage
                {
                    int ind = newfile.LastIndexOf(".");
                    if (newfile.Substring(ind - 1, 1) == ")")
                    {
                        int num = Convert.ToInt32(newfile.Substring(newfile.LastIndexOf("(") + 1, newfile.LastIndexOf(")") - 1 - newfile.LastIndexOf("(")));
                        newfile = newfile.Replace("(" + num.ToString() + ").", "(" + (num + 1).ToString() + ").");
                    }
                    else
                    {
                        newfile = newfile.Insert(ind, " (1)");
                        if (File.Exists(newfile))
                        {
                            int num = Convert.ToInt32(newfile.Substring(newfile.LastIndexOf("(") + 1, newfile.LastIndexOf(")") - 1 - newfile.LastIndexOf("(")));
                            newfile = newfile.Replace("(" + num.ToString() + ").", "(" + (num + 1).ToString() + ").");
                        }
                    }
                }
                if (move)
                {
                    File.Move(selectfiles[j], newfile);
                }
                else
                {
                    File.Copy(selectfiles[j], newfile);
                }
            }
        }