文件移动循环并显示进度条

本文关键字:显示 移动 循环 文件 | 更新日期: 2023-09-27 18:17:44

如何在移动文件时显示进度条?

目前我得到了这个:

 private void btnMoveFile_Click(object sender, EventArgs e)
        {
            try
            {
                if (pathFrom != null && pathTo != null)
                {
                    if (txtRename.Text != null)
                    {
                        pathTo = pathTo + "''" + txtRename.Text;
                    }
                    else
                    {
                        pathTo = pathTo + "''" + Path.GetFileName(pathFrom);
                    }
                    File.Move(pathFrom, pathTo);
                }
                else
                {
                    MessageBox.Show("Kies eerst een bestand.");
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            for (int i = 1; i <= 100; i++)
            {
                // Wait 100 milliseconds.
                Thread.Sleep(100);
                // Report progress.
                backgroundWorker1.ReportProgress(i);
            }
        }
        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;
            // Set the text.
            this.Text = e.ProgressPercentage.ToString();
        }

但是因为File.Move(pathFrom, pathTo);不是一个loupe,我不知道如何做到这一点。

文件移动循环并显示进度条

考虑使用来自shell32的SHFileOperation API。这个答案描述了一个可行的解决方案:如何打开内置的文件复制对话框?它适用于复制以及移动和删除。