简体   繁体   English

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

[英]file move loop and show progressbar

How could I show a progress bar when moving a file? 移动文件时如何显示进度条?

Currently I've got this: 目前我有这个:

 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();
        }

But because File.Move(pathFrom, pathTo); 但是因为File.Move(pathFrom, pathTo); is not a loupe I've got no Idea how to do this. 不是放大镜,我不知道该怎么做。

Consider using the SHFileOperation API from shell32. 考虑使用shell32中的SHFileOperation API。 A working solution is described in this answer: How to bring up the built-in File Copy dialog? 此答案描述了一个有效的解决方案: 如何调出内置的“文件复制”对话框? It works for copy as well as for move and delete. 它适用于复制以及移动和删除。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM